该文章参考自:
强引用(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");
虚引用在任何时候都可能被垃圾回收器回收
|