Java基础
文章平均质量分 80
十二页
勤能补拙ing
展开
-
Java浅拷贝和深拷贝
浅拷贝和深拷贝是在编程中很通用的概念。一般来说,对于 B = A.copy如果除了程序中的全局共享内存、不变对象,A和B表示的对象还存在内存共享,那么这就是浅拷贝;如果除了程序中的全局共享内存、不变对象,A和B表示的对象占用的内存是完全分开,那么这就是深拷贝。因为浅拷贝存在对象(内存)共享,其中的一个修改了共享对象,另一个也是能看到这种修改的。深拷贝不存在这种对象(内存)共享,双方都原创 2017-01-14 15:18:33 · 445 阅读 · 0 评论 -
从字节码看Java中for-each循环(增强for循环)实现原理
for-each循环是jdk1.5引入的新的语法功能。并不是所有东西都可以使用这个循环的。可以看下Iterable接口的注释,它说明了除了数组外,其他类想要使用for-each循环必须实现这个接口。这一点表明除了数组外的for-each可能底层是由迭代器实现的。Iterable接口在1.8之前只有一个方法,Iterator iterator(),此方法返回一个迭代器。由于更早出现的Collec原创 2017-01-15 16:11:47 · 4497 阅读 · 2 评论 -
jdk1.8 LongAdder源码学习
LongAdder是jdk8新增的用于并发环境的计数器,目的是为了在高并发情况下,代替AtomicLong/AtomicInt,成为一个用于高并发情况下的高效的通用计数器。高并发下计数,一般最先想到的应该是AtomicLong/AtomicInt,AtmoicXXX使用硬件级别的指令 CAS 来更新计数器的值,这样可以避免加锁,机器直接支持的指令,效率也很高。但是AtomicXXX中的 CAS原创 2017-03-05 22:46:49 · 7090 阅读 · 4 评论 -
简单了解sun.misc.Unsafe
这里简单了解下sun.misc.Unsafe,jdk中的类很多地方都有用到它,它是许多类的实现的关键,知道这个类干嘛的,对一些源码的阅读很有帮助。sun.misc.Unsafe算是Java留下的后门,能提供相当强大的操作,但是又不提供专业的文档。看名字就知道,sun本身就不推荐使用这个类。一般应用级的代码都不应该使用它,框架级别的,用这个的很多,比如jdk自身,一些框架netty,最常见的框架原创 2017-03-04 23:08:31 · 3812 阅读 · 1 评论