volatile关键字经常在并发编程中使用,其特性是保证可见性以及有序性,但是关于volatile的使用仍然要小心,这需要明白volatile关键字的特性及实现的原理,这也是...
前言 利用线程池和CountDownLatch,多线程并发处理批量数据,实现多线程事务回滚,事务补偿。 begin设置为1,用于发布开始命令,如果需要开始,则begin.co...
前言 随着分布式服务架构的流行与普及,原来在单体应用中执行的多个逻辑操作,现在被拆分成了多个服务之间的远程调用。虽然服务化为我们的系统带来了水平伸缩的能力,然而随之而来挑战就...
一 .两种异常结构 java中的异常和错误都继承自java.lang.Throwable 在异常处理的时候,都会接触到受检异常(checked exception)和非受检异...
为什么Vector和Collections.SynchronizedList的get方法要加锁呢? 1. 线程不安全的ArrayList 为什么说ArrayList是线程不安...
一、相同点 这个两个注解都是用来完成组件的装配的,即利用依赖注入(DI),完成对IOC容器当中各个组件之间依赖的装配赋值。 二、不同点 2.1 来源不同 2.1.1 @Res...
策略模式目的是取代if...else...的写法,但是策略模式一般需要定义一个接口+多个实现类,然后使用枚举类(实现享元模式)或者Map(实现享元模式)来维护type:实现类...
从3.1开始,Spring引入了对Cache的支持。其使用方法和原理都类似于Spring对事务管理的支持。Spring Cache是作用在方法上的,其核心思想是这样的:当我们...
上一篇 <<<缓存策略汇总[https://www.jianshu.com/p/e0942ce411dc]下一篇 >>>服务的隔离、降级和熔断[https://www.jia...
今天,我们来聊一道常见的考题,也出现在腾讯面试的三面环节,非常有意思。具体的题目如下: 文件中有40亿个QQ号码,请设计算法对QQ号码去重,相同的QQ号码仅保留一个,内存限制...