强引用: Object o = new Object(); 此时 o 是强引用。 GC不会回收
软引用:SoftReference<Object> ref = new SoftReference<>(new Object()); GC会在内存不够时回收
弱引用:WeakReference<Object> ref = new WeakReference<>(new Object()); 下次GC会回收。
幽灵引用:PhontomReference<Object> ref = new PhontomReference<>(new Object(),new ReferenceQueue()); 在GC回收该对象前的瞬间,将对象加入到引用队列中,之后检查队列中是否有对象,若有则可以执行想执行的必要操作(如清理对象空间等,发出提示等)弥补finalize()方法不知何时执行的缺憾。