在java中JDK1.2版本以后,对象的引用类型分为四种,从高到低依次为:强引用、软引用、弱引用、虚引用。
-
强引用的特点:垃圾回收机制绝不会回收它,即使内存不足时,JVM宁愿抛出OutOfMemoryError错误,使程序异常终止,
也不会靠随意回收具有强引用的对象来解决内存不足问题。 -
软引用的特点:如果内存空间足够,垃圾回收机制就不会回收它。
-
弱引用的特点:在垃圾回收器线程扫描它 所管辖的内存区域的过程中,一旦发现具有弱引用的对象,不管内存是否充足,都会被回收。
-
虚引用的特点:垃圾回收机制在回收对象时,如果发现还有虚引用,就会在回收对象之前,把这个虚引用加入到与之关联的引用队列中。
常见的一个面试题:
拥有下列哪个引用类型的对象在虚拟机内存足够的情况下不会被垃圾回收机制回收? B
A. 弱引用
B. 软引用
C. 虚引用
D. 强引用