java的引用
1. 強引用
只要是這個強引用存在時,內存中會一直保留他的內存,即使垃圾回收器來回收垃圾時,也不會回收這個對象的內存。即使內存不足時,會報內存溢出
Object o = new Object();
2. 弱引用 WeakReference
生命週期很短,垃圾回收器回收時,就把它給回收掉了
String s = new String("1");
WeakReference<String> wr = new WeakReference<String>(s);
s = null;
System.out.println("垃圾回收之前:"+wr.get()); //1
System.gc();//垃圾回收
System.out.println("垃圾回收之後:"+wr.get());// null
- 軟引用 SoftReference
這個在垃圾回收器回收的時候,也不會回收這個對象的內存,只有在內存空間不足時纔會回收
String s = new String("1");
SoftReference<String> wr = new SoftReference<String>(s);
s = null;
System.out.println("垃圾回收之前:"+wr.get()); //1
System.gc();//垃圾回收
System.out.println("垃圾回收之後:"+wr.get());// 1
ReferenceQueue和Reference以後再講