1.强引用:如果一个对象具有强引用,则该对象不会被垃圾回收器回收,即使内存空间不足,JVM也不会回收该对象,而是抛出OutOfMemoryError异常,使程序异常中止。如果要中断强引用与某个对象的关联,可以显示的将该引用置为null,则JVM会在合适的时间回收该对象。
Object obj = new Object(); // 强引用
obj = null; // 取消强引用
2.软引用:如果一个对象具有软引用,则只有在内存空间不足的时候,JVM才会回收它。
SoftReference<String> softName = new SoftReference<>("张三");
3.弱引用:若一个对象具有弱引用,则不管内存空间足不足够,只要垃圾回收器发现了该对象,就会将其回收。
WeakReference<String> weakName = new WeakReference<String>("hello");
4.虚引用:顾名思义,就是形同虚设,如果一个对象仅持有虚引用,那么它相当于没有引用,在任何时候都可能被垃圾回收器回收。
参考:
https://www.cnblogs.com/pascall/p/10281775.html
http://www.360doc.com/content/19/0409/10/25472797_827404356.shtml