软引用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24package nowcoder;
import java.lang.ref.SoftReference;
public class Test {
private static class Bigger{
public int[] values;
public String name;
public Bigger(String name){
this.name=name;
values=new int[1024];
}
}
public static void main(String[] args) {
int count =1000000;
SoftReference[] values=new SoftReference[count];
for(int i=0;i<count;i++){
values[i]=new SoftReference<Bigger>(new Bigger("bigger-"+i));
}
for(int i=0;i<10;i++){
System.out.println(((Bigger)(values[i].get())).name);
}
}
}输出如下:
总结:软引用用来描述一些还有用,但并非必须的对象,对于软引用关联的对象,在系统将要发生内存溢出异常之前,将会把这些对象列进回收范围之中,并进行二次回收,如果这次回收还是没有足够的内存,才会抛出内存不足异常
java四大引用
Donate comment here