黑马程序员技术交流社区

标题: Java的强、软、弱、虚引用 [打印本页]

作者: 填rui    时间: 2018-1-26 18:56
标题: Java的强、软、弱、虚引用
该文章参考自:

http://www.cnblogs.com/dolphin0520/p/3784171.html



强引用(StrongReference)就是指在程序代码之中普遍存在的,比如下面这段代码
[Java] 纯文本查看 复制代码
String str = "hello world";
Scanner sc = new Scanner();

JVM即使在内存不足的时候也不会回收str和sc对象

软引用(SoftReference)

用来描述一些有用但不是必需的对象,比如下面这段代码
[Java] 纯文本查看 复制代码
SoftReference<String> str = new SoftRenference<String>(new String("hello world"));

只有在内存不足时才会回收str对象

弱引用(WeakReference)
也是用来描述非必需对象的
[AppleScript] 纯文本查看 复制代码
WeakReference<String> str = new WeakReference<String>(new String("hello world");

当JVM进行垃圾回收时,不管内存是否充足,都会回收str对象

虚引用(PhantomReference)
这个和软引用、虚引用不同,它并不影响对象的生命周期
[AppleScript] 纯文本查看 复制代码
PhantomReference<String> str = new PhantomReference<String>("hello world");

虚引用在任何时候都可能被垃圾回收器回收





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2