引用类型可以说是整个Java开发的灵魂所在,如果没有合理的引用操作,那么有可能产生垃圾问题。但是引用也需要一些合理化的设计。
在很多的时候并不是所有的对象都需要被我们一直使用,所以我们就需要针对引用的问题作出进一步的思考。所以从JDK1.2之后关于引用提出了4种方案:
- 强引用:当内存不足的时候,JVM宁可出现OOM(OutOfMemory)错误停止,也需要进行保存,并且不会将此空间回收;
Obeject obj = new Object();
-
软引用:当内存不足的时候进行对象的回收处理,往往用于高速缓存中;
-
弱引用:不管内存是否紧张,只要有垃圾产生了,就立即回收;
-
虚引用(幽灵引用):和没有引用是一样的。