Java 内存的三篇文章

1,内存模型http://www.cnblogs.com/aigongsi/archive/2012/04/26/2470296.html

而内存模型就是规定了一个规则,处理器如何同主内存同步数据的一个规则。

2,垃圾回收http://www.cnblogs.com/aigongsi/archive/2012/04/06/2434771.html

要点:jvm采用找root对象的方式确定是否回收。

Strong Reference(强引用) –>Weak Reference (弱引用) -> Soft Reference(软引用) – > Phantom Reference(引用)

 

Strong Reference : 只有在引用对象root不可达的情况下才会标识为可回收,垃圾回收才可能进行回收

Weak Reference :即使在root算法中 其引用的对象root可达到,但是如果jvm堆内存 不够的时候,还是会被回收。

Soft Reference : 无论其引用的对象是否root可达,在响应内存需要时,由垃圾回收判断是否需要回收。

Phantom Reference :在回收器确定其指示对象可另外回收之后,被加入垃圾回收队列.

3,volatile关键字http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html

对于volatile修饰的变量,jvm虚拟机只是保证从主内存加载到线程工作内存的值是最新的

原文地址:https://www.cnblogs.com/linxiaojiang/p/3665670.html