Java中通过new来创建的对象都是强引用类型,在回收的时候,GC会抛出OOM的异常,并且不会回收;
SoftReference<String> stringSoftReference = new SoftReference<>("SoftReference");
在内存足够时,不进行回收,内存不够时,进行回收;这也是缓存中通常使用的
WeakReference<String> weakReference = new WeakReference<>("WeakReference");
GC工作时进行回收
PhantomReference<String> phantomReference = new PhantomReference<>("PhantomReference",new ReferenceQueue<>());
用完就回收了