首先看类的结构图:
t
它是在java.lang.ref包下 从上面的单词就知道了Reference是引用的意思,前面的前缀就是所说的软 弱 虚引用,我们通常都是使用强引用,
Person person = new Person();
Java默认就是强引用,比如上面的new Peson对象,
强引用的特点:
当内存不足, jvm开始垃圾回收,对于强引用的对象,就算出现OOM异常也不会对该对象进行回收,Android内存泄露大部分都是强引用导致的,
Object object1 = new Object();
Object object2 = object1;
object1 = null;
System.gc();
System.out.println("object2="+object2);
虽然把object1=null,然后object2还是存在,
软引用特点:
软引用是相对强引用弱点的引用,需要使用SoftReference类来实现,当系统内存充足时,它不会被回收,当系统内存不足时,它会被回收,软引用通常使用在对内存比较敏感时使用
Object object1 = new Object();
SoftReference<Object> softReference = new SoftReference<>(object1);
object1