电话:0731-83595998
导航

理解Java的GC与幽灵引用

来源: 2017-12-19 11:46

 百度广告

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

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

  1. Strong Reference

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

  Java代码

@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代码

@Test

  2.public void weakReference() {

  3.   Object referent = new Object();

  4.   WeakReference weakRerference = new WeakReference(referent);

  5.

  6.   assertSame(referent, weakRerference.get());

  7.

  8.   referent = null;

  9.   System.gc();

  10.

  11.   /**

  12.   * 一旦没有指向 referent 的强引用, weak reference 在 GC 后会被自动回收

  13.   */

  14.   assertNull(weakRerference.get());

  15.}

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

网络课程 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
  • 电网书籍
  • 财会书籍
  • 其它工学书籍
拼团课程更多+
  • 电气拼团课程
  • 财会拼团课程
  • 其它工学拼团
热门排行

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端