对于大的对象使用过后,为了help gc ,我们会手动将大对象置为null
例子
比如一些对象占用内存较大,方法的栈帧长时间不能被回收、方法调用次数太少达不过JIT的编译条件下可以使用,其它情况下不推荐使用
public class StackSlot {
public static void main(String[] args) {
byte[] byteArrays = new byte[5 * 1024 * 1024];
byteArrays = null ;
System.gc();
}
}
推荐
public class StackSlot1 {
public static void main(String[] args) {
{
byte[] byteArrays = new byte[5 * 1024 * 1024];
}
int x = 10 ;
System.gc();
}
}
方法结束后局部变量表中引用的对象,如果不被其它线程引用的话,在GC时直接就被回收了