Java引用分为强引用、软引用、弱引用和虚引用。

  • 强引用就是指在程序代码中普遍存在的,类似“Object obj = new Object()”这类的引用,只要强引用还存在,垃圾收集器永远不会回收掉被引用的对象。
  • 软引用是用来描述一些还有用但并非必需的对象,在系统将要发生内存溢出异常之前,将会把这类对象列进回收范围之中进行第二次回收。如果这次回收还是没有足够的内存,才会抛出内存溢出异常。在JDK1.2之后,提供了SoftReference类来实现软引用。
  • 弱引用也是用来描述非必需对象的,但是它的强度比软引用更弱一些,只能生存到下一次垃圾收集器工作之前。当垃圾收集器工作时,无论当前内存足够与否,都会回收掉只被弱引用关联的对象。在JDK1.2之后,提供了WeakReference类来实现弱引用。
  • 虚引用也称为幽灵引用或者幻影引用,它是最弱的一种引用关系。一个对象是否有虚引用的存在,完全不会对其生存时间构成影响每页无法通过虚引用来取得一个对象实例。为一个对象设置虚引用关联的唯一目的就是能在这个对象被垃圾收集器回收时收到一个系统通知。在JDK1.2之后,提供了PhantomReference类来实现虚引用。

——摘自《深入理解java虚拟机》

最新文章

  1. 计算机程序的思维逻辑 (8) - char的真正含义
  2. java模拟浏览器上传文件
  3. Codeforces Round #388 (Div. 2) A,B,C,D
  4. Process Explorer使用图文教程
  5. iOS代码加密常用加密方式
  6. java中的URLConnection
  7. CentOS7安装mysql5.6.26
  8. iOS 开发 - 改善APP的流畅度 (绘制股票行情)
  9. ASP.NET MVC 过滤器详解
  10. NSThread - (void)start vs java Thread implements Runnable
  11. ASP.NET MVC (一)
  12. 转:UniqueID和ClientID的来源
  13. 9款风格华丽的jQuery/CSS3插件
  14. Spring InitializingBean and DisposableBean example
  15. Qt 学习之路:文本文件读写
  16. 用户 'IIS APPPOOL\ExportExcel' 登录失败。
  17. System.getProperty()方法获取系统变量
  18. 树形动态规划(树形DP)入门问题—初探 & 训练
  19. myEclipse全局搜索时报错
  20. ALGO-139_蓝桥杯_算法训练_s01串(递归)

热门文章

  1. optimizing Wi-Fi solution for International School
  2. python学习-练习题1巩固(随机数)
  3. 软件WEB自动化测试工具之智能元素定位
  4. 简述树,Trie,Avl,红黑树
  5. CouchDB的简单使用
  6. 微信小程序开发工具报错对应的服务器证书无效
  7. python报错:ERROR: No matching distribution found for dns.resolver
  8. vnpy源码阅读学习(7):串在一起
  9. http server部署discuz
  10. Selenium系列(六) - 强制等待、隐式等待、显式等待