设为首页 加入收藏

TOP

理解Java的GC与幽灵引用
2014-11-19 11:04:25 来源: 作者: 【 】 浏览:16
Tags:理解 Java 幽灵 引用

  Java 中一共有 4 种类型的引用 : StrongReference、 SoftReference、 WeakReference 以及 PhantomReference (传说中的幽灵引用 呵呵),


  这 4 种类型的引用与 GC 有着密切的关系, 让我们逐一来看它们的定义和使用场景 :


  1. Strong Reference


  StrongReference 是 Java 的默认引用实现, 它会尽可能长时间的存活于 JVM 内, 当没有任何对象指向它时 GC 执行后将会被回收


  Java代码


  1.@Test


  2.public void strongReference() {


  3. Object referent = new Object();


  4.


  5. /**


  6. * 通过赋值创建 StrongReference


  7. */


  8. Object strongReference = referent;


  9.


  10. assertSame(referent, strongReference);


  11.


  12. referent = null;


  13. System.gc();


  14.


  15. /**


  16. * StrongReference 在 GC 后不会被回收


  17. */


  18. assertNotNull(strongReference);


  19.}


  2. WeakReference & WeakHashMap


  WeakReference, 顾名思义, 是一个弱引用, 当所引用的对象在 JVM 内不再有强引用时, GC 后 weak reference 将会被自动回收


  Java代码


  1.@Test


  2.public void weakReference() {


  3. Object referent = new Object();


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇归纳一些取Java绝对路径的方法 下一篇Java中的输入/输出(I/O)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: