当前位置: 首页 > news >正文

安庆城乡建设局网站/专门搜索知乎内容的搜索引擎

安庆城乡建设局网站,专门搜索知乎内容的搜索引擎,网站建设教学课件,南宁手机做网站设计Java 中的 4 种引用类型1、Java 中有哪几种引用?它们的含义和区别是什么?从 JDK1.2 开始,Java 中的引用类型分为四种,分别是:①强引用(StrongReference)②软引用(softRefernce)③弱引用(WeakReference)④虚引用(Phanto…

Java 中的 4 种引用类型

1、Java 中有哪几种引用?它们的含义和区别是什么?

从 JDK1.2 开始,Java 中的引用类型分为四种,分别是:

①强引用(StrongReference)

②软引用(softRefernce)

③弱引用(WeakReference)

④虚引用(PhantomReference)

强引用 - StrongReference

这种引用是平时开发中最常用的,例如Stringstrong=newString("Strong Reference"),当一个实例对象具有强引用时,垃圾回收器不会回收该对象,当内存不足时,宁愿抛出 OutOfMemeryError 异常也不会通过回收强引用的对象,因为 JVM 认为强引用的对象是用户正在使用的对象,它无法分辨出到底该回收哪个,强行回收有可能导致系统严重错误。

软引用 - SoftReference

如果一个对象只有软引用,那么只有当内存不足时,JVM 才会去回收该对象,其他情况不会回收。软引用可以结合 ReferenceQueue 来使用,当由于系统内存不足,导致软引用的对象被回收了,JVM 会把这个软引用加入到与之相关联的 ReferenceQueue 中。ReferenceQueuereferenceQueue=newReferenceQueue();

SoftReferencesoftReference=newSoftReference<>(newBook(),referenceQueue);

Bookbook=softReference.get();

Referencereference=referenceQueue.poll();

当系统内存不足时,触发 gc,这个 Book 就会被回收,reference 将不为 null。

弱引用 - WeakReference

只有弱引用的对象,当 JVM 触发 gc 时,就会回收该对象。与软引用不同的是,不管是否内存不足,弱引用都会被回收。弱引用可以结合 ReferenceQueue 来使用,当由于系统触发 gc,导致软引用的对象被回收了,JVM 会把这个弱引用加入到与之相关联的 ReferenceQueue 中,不过由于垃圾收集器线程的优先级很低,所以弱引用不一定会被很快回收。下面通过一个主动触发 gc 的例子来验证此结论。ReferenceQueuereferenceQueue=newReferenceQueue();

WeakReferenceweakReference=newWeakReference(newBook(),referenceQueue);

Bookbook=softReference.get();

System.gc();

//Runtime.getRuntime().gc();

Referencereference=referenceQueue.poll();

ab7653affab982b574eb7acc55df2e04.gifweak_reference.png

当然这不是每次都能复现,因为我们调用 System.gc() 只是告诉 JVM 该回收垃圾了,但是它什么时候做还是不一定的,但就我测试来看,只要多写几次 System.gc(),复现的概率还是很高的。

虚引用 - PhantomReference

如果一个对象只有虚引用在引用它,垃圾回收器是可以在任意时候对其进行回收的,虚引用主要用来跟踪对象被垃圾回收器回收的活动,当被回收时,JVM 会把这个弱引用加入到与之相关联的 ReferenceQueue 中。与软引用和弱引用不同的是,虚引用必须有一个与之关联的 ReferenceQueue,通过 phantomReference.get() 得到的值为 null,试想一下,如果没有 ReferenceQueue 与之关联还有什么存在的价值呢?PhantomReferencephantomReference=newPhantomReference<>(newBook(),referenceQueue);

Bookbook=phantomReference.get();//此值为null

Referencereference=referenceQueue.poll();

来源: http://www.jianshu.com/p/c571fa1c5554

http://www.jmfq.cn/news/4989223.html

相关文章:

  • 免费网站在线观看/最让顾客心动的促销活动
  • 信访举报网站建设情况总结/上海短视频推广
  • 网站制作公司费用/哈尔滨百度公司地址
  • 集团网站建设行业现状/抖音引流推广一个30元
  • 网站制作报价大约/关键词自动优化
  • 网站结构优化包括哪些/怎么做链接推广产品
  • 邹平建设网站/百度seo排名优
  • 余姚做网站/网站推广的方式有哪些?
  • 做全国家电维修网站到哪里做/百度快照投诉中心
  • 成都做小程序哪个服务最好/seo营销怎么做
  • 应聘的做网站推广的/今日国内重大新闻
  • 温州集团网站建设公司/公司网站如何推广
  • 鸡西城乡建设局网站/网站维护需要多长时间
  • 关于网站开发的步骤/查询网入口
  • 网站做反向代理后样式加载错误/企业网络推广平台
  • 大丰做网站/百度竞价排名事件分析
  • 网站建设明细报价表/投广告哪个平台好
  • 门户网站后台管理系统模板/网络推广营销软件
  • 可以自己做网站的软件/seo文章优化方法
  • 开一个设计工作室需要什么/福州短视频seo网红
  • h5网站设计报价/网络营销策划书2000字
  • 邢台网站建设平台/怎样和政府交换友链
  • 玉溪做网站建设的公司/竞价广告是怎么推广的
  • 网站微信付款调用/楚雄百度推广电话
  • 专业做公司宣传网站的/关键词排名点击软件怎样
  • 佛山专业网站建设/重庆网站制作公司
  • 南阳市做网站/信息互联网推广
  • 如何低成本做网站推广/北京seo关键词排名优化
  • wordpress 定时/什么是网站seo
  • 哪个网站可以做片头/网站怎么做优化排名