240 发简信
IP属地:北京
  • Mysql知识点整理

    索引相关 索引类型 主键索引:数据列不允许重复,不允许为NULL。一个表只能有一个主键索引。InnoDB的主键索引为聚簇索引,而MyISAM的主键索引为非聚簇索引。创建:AL...

  • Leetcode kSum问题

    kSum 泛指一类问题,例如 leetcode 第1题 2 Sum,leetcode 第15题 3 Sum,leetcode 第18题 4 Sum。 我们先一题一题来看,然后...

  • 寻找数组中第K大的元素

    问题 tag: Medium 分析 这题最简单的做法是将数组排序,然后直接返回第K大的元素。复杂度为:O(NlogN)。但是,很明显,出题者并不想让我们这么做。 如果对数组排...

  • Guava RateLimiter限流

    缓存,降级和限流是大型分布式系统中的三把利剑。目前限流主要有漏桶和令牌桶两种算法。 缓存:缓存的目的是减少外部调用,提高系统响速度。俗话说:"缓存是网站优化第一定律"。缓存又...

  • Java Object类的各个方法

    Java中所有的类都继承自java.lang.Object类,Object类中一共有11个方法: getClass方法 这是一个native方法,并且是'final'的,也就...

  • 如何让两个线程交替打印数字

    问题 如何让两个线程交替打印1-100的数字?废话不多说,直接上代码: synchronized锁+AtomicInteger 这里需要注意两点: 用AtomicIntege...

  • [转载]基于Redis的分布式锁到底安全吗?

    网上有关Redis分布式锁的文章可谓多如牛毛了,不信的话你可以拿关键词“Redis 分布式锁”随便到哪个搜索引擎上去搜索一下就知道了。这些文章的思路大体相近,给出的实现算法也...

  • Java中断机制

    引言 Java中断机制为我们提供了一种"试图"停止一个线程的方法。设想我们有一个线程阻塞在一个耗时的I/O中,我们又不想一直等下去,那么我们怎么样才能停止这个线程呢?答案就是...

  • ExecutorService shutdown()和shutdownNow()方法区别

    ExecutorService是我们经常使用的线程池,当我们使用完线程池后,需要关闭线程池。ExecutorService的shutdown()和shutdownNow()方...

  • 优惠劵系统库存设计浅谈

    优惠劵系统活动库存一般分为:总库存和日库存。在一个用户来领取优惠劵时,需要判断当前剩余总库存和日库存是否充足,如果充足则进行库存扣减,否则提示用户领取失败。总库存和日库存的扣...

  • Java中的伪共享(false sharing)

    维基百科中对伪共享的定义如下: 其大致意思是:CPU的缓存是以缓存行(cache line)为单位进行缓存的,当多个线程修改不同变量,而这些变量又处于同一个缓存行时就会影响彼...

  • MQ消费端的幂等

    MQ消费端在接收到MQ消息之后按照业务key(uuid)进行防重,达到消费的幂等性。 业务场景 用户在使用白条优惠劵打白条支付订单后,如果用户整单退款,需要给用户补发优惠劵。...

  • 浅谈Disruptor

    Disruptor是一个低延迟(low-latency),高吞吐量(high-throughput)的事件发布订阅框架。通过Disruptor,可以在一个JVM中发布事件,和...

  • 单例模式和DCL

    懒汉模式(lazy init) 上面的方法实现简单,在单线程环境下没有问题,但是在多线程环境下就会有并发安全问题。如果两个线程同时进入if (singleton == nul...

  • JVM指令集

    操作数栈(operand stack)相关 本地变量表(local variable table)到操作数栈(operand stack) 可以看到:i开头的指令操作数类型是...

  • Java final关键字及其内存语义

    final是Java中的一个关键字,final可用于修饰类、方法、参数和变量(包括实例变量和类变量)。 final修饰类 final修饰的类具有不可继承性,也就是如果一个类是...

个人介绍
喜欢篮球的程序员