标签:解决 使用 存在 weakref .com 缓存 tom get omr
在Java中,判断一个对象是否 "存活" ,都和引用有关,当一个对象没有任何的引用指向它,我们可以认为这个对象可以被GC了。
引用如何定义?Object obj = new Object()创建一个对象 ,我们知道会在 stack 和 heap 上分别分配一块内存,heap 分配的内存存储Object对象实例,stack分配的内存存储着指向heap内存地址的值,stack这块内存代表着一个引用,这种定义很纯粹而且狭隘。
@Test public void softReferenceTest(){ SoftReference<String> sr = new SoftReference<String>(new String("hello,world")); System.out.println(sr.get()); }
@Test public void weakReferenceTest(){ WeakReference<String> wr = new WeakReference<String>(new String("hello")); System.out.printn(wr.get()); System.gc();//通知JVM的gc进行回收 System.out.println(wr.get()); }
@Test public void phontomReferenceTest() { ReferenceQueue<String> queue = new ReferenceQueue<String>(); PhantomReference<String> pr = new PhantomReference<String>(new String( "hello"), queue); System.out.println(pr.get()); }
参考:http://www.cnblogs.com/dolphin0520/p/3784171.html
标签:解决 使用 存在 weakref .com 缓存 tom get omr
原文地址:https://www.cnblogs.com/xiaojianfeng/p/9366892.html