![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
泡泡澜
网上的教程多而繁杂,这里只取切实有用的记录下来。
展开
-
volatile底层实现原理
有volatile关键字修饰的变量在进行写操作时,汇编代码会多一行: 【lock addl $0x0,(%esp);】,这行代码的含义是对原值加零,其中相加指令addl前有lock修饰。通过IA-32架构软件开发者手册可知,lock前缀的指令在多核处理器的时候会将当前处理器缓存行的数据写回系统内存,而这个写回内存的操作会使在其他CPU里缓存了该内存地址的数据无效,当处理器要对...原创 2019-07-24 15:51:06 · 216 阅读 · 0 评论 -
JVM GC详解
一、垃圾定义算法 1.引用计数算法 引用计数法(Reachability Counting,直译为可达性统计),是通过在对象头部分配一个控件来保存该对象被引用次数(Reference Count,直译为查阅统计)。如果该对象被其他对象引用,那么它的引用计数加一,如果删除了该对象的引用,那么引用计数就减1,当该对象引用计数为0时,该对象就会被回收。 该算法是将垃圾回收分摊到了整个应用程序的运行当中,...原创 2019-07-24 15:52:19 · 171 阅读 · 0 评论 -
简单说说数据分片和数据库部署方案
一、数据分片 1.数据分片的目的 默认我们当前都知道,数据复制只能提高数据的读并发操作能力,并不能改善数据写操作的并发能力及整个存储容量。所以如果当业务中对写操作也有大量的并发需求需要满足,又或者数据表特别大,那么此时单一的服务器就可能并不能很好的实现我们的需求。怎么办呢?数据分片。 2.数据分片是什么 其实就像听起来的一样,数据分片就是讲一张数据表切分成较小的片,然后再...原创 2019-08-08 09:50:49 · 993 阅读 · 0 评论 -
来聊聊Integer和int吧
说来惭愧,不久前一次面试被问到Integer和int的区别,憋了半天只说出了Integer默认值为null。水平过不去,面试自然是失败了,那这二者除了默认值不一样外究竟还有有何区别,就让我们来看一看吧。 · 区别 1.int是java的一种基本数据类型,而Integer实际上是int的包装类; 2.Integer必须实例化后才能使用,当我们声明一个【Integer i = 10;】的时...原创 2019-08-26 00:16:40 · 166 阅读 · 0 评论 -
JAVA的快速失败和安全失败
这两天在看JAVA的TreeMap类时,了解到一个神奇的概念:快速失败。查了一下资料,继而又发现了安全失败的概念。那么这是什么呢? 一、概念对比 1.快速失败(fail-fast) 在使用迭代器对集合对象进行遍历的这段时间中,如果对该集合进行修改,就会抛出 ConcurrentModificationException异常。即在多线程情况下是无法使用快速失...原创 2019-09-10 15:10:45 · 216 阅读 · 0 评论