很多详细的东西在网上都可以找到,因为这个问题在面试中被提到过,所以特此做一个简单的笔记。
java中有四种引用的方法(按照从强到弱):
第一种:强引用,也就是一般的对象引用。特点是不管在什么时候,此引用的对象都不会被垃圾回收,JVM会在堆满的时候抛异常,也不会回收。。。
第二种:软引用,使用格式:SoftRefrence<T> o = new SoftRefrence<T>(); 只要内存空间足够,就不会回收,内存空间不足才会回收。
第三种:弱引用,使用格式同上,不管内存够不够,只要回收线程扫描到对象如果只有弱引用,那么就会回收。
第四种:幽灵引用,如果一个对象只有幽灵引用,就相当于没有引用,任何时候都可能被回收。使用方法必须和引用队列合在一起用。