public void referenceDemo () {
//强引用- 即使发生OOM 也不会被回收
User user = new User();
// 软引用- 内存不足时 才会回收
SoftReference<User> softReference = new SoftReference<User>(new User());
User userSoft = softReference.get();
// 弱引用- 只要进行垃圾回收,就会被回收
WeakReference<User> weakReference = new WeakReference<>(new User());
User userWeak = weakReference.get();
// 虚引用- 无法通过虚引用来获取对一个对象的真实引用
// 虚引用主要用来跟踪对象被垃圾回收器回收的活动。
ReferenceQueue queue = new ReferenceQueue();
PhantomReference<byte[]> reference = new PhantomReference<byte[]>(new byte[1], queue);
System.out.println(reference.get());
// 输出- null
}