看第一段代码
public class Test {
public Test test = new Test();
public void say() {
System.out.println("hello world!");
}
public static void main(String[] args) {
new Test();
}
}
上边这段代码会造成死循环并导致内存溢出,接下来看第二段代码
public class Test {
public static Test test = new Test();
public void say() {
System.out.println("hello world!");
}
public static void main(String[] args) {
// 可以无限引用下去,但不会形成死循环
new Test().test.test.test.test.test.say();
}
}
上述第二段代码中,new Test().test.test.test.test.test.say();可以无限引用,但是有没有形成死循环,这是为什么?有人可以从内存角度分析一下上述第二种代码吗?
翻过高山走不出你
交互式爱情
喵喵时光机
拉丁的传说
www说
随时随地看视频慕课网APP
相关分类