大家都知道,java有垃圾收集器,所以程序不以不必关心内存的回收,垃圾回收器是根据堆中的对象如没有引用了,就回收这这个对象,如果本个没用的对象还被引用着,那么这个对象所占的内就相当于泄漏了,我想的问的是,以下的代码会造成这种泄漏吗?
Public Class A { // 类A
B b;
public A() {
b = new B(this);
}
}Public Class B { // 类B
A a; public B(A a) {
this.a = a;
}
}
// 然后另外一个函数里面Public fun() {
A a = new A(); // 在这个fun()函数调用完毕,也就是退出这个函数域,
在堆中创建的两个对象变成垃圾了,还是泄漏了? 望大家能帮小弟解答,不胜感激!!
}
Public Class A { // 类A
B b;
public A() {
b = new B(this);
}
}Public Class B { // 类B
A a; public B(A a) {
this.a = a;
}
}
// 然后另外一个函数里面Public fun() {
A a = new A(); // 在这个fun()函数调用完毕,也就是退出这个函数域,
在堆中创建的两个对象变成垃圾了,还是泄漏了? 望大家能帮小弟解答,不胜感激!!
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货