JAVA,在类中NEW一个本类的对象,内存分配的问题。
我是JAVA初学者,请问在类中NEW一个这个类的对象,是不是会在内存中分配无穷尽个对象呢?比如:publicclassTest{Testtest=newTest();}这...
我是JAVA初学者,请问在类中NEW一个这个类的对象,是不是会在内存中分配无穷尽个对象呢?比如:
public class Test{
Test test = new Test();
}
这样是不是会在内存中出现无穷个对象?
test.test.test.test.test.....可以无穷调用test是怎么回事? 展开
public class Test{
Test test = new Test();
}
这样是不是会在内存中出现无穷个对象?
test.test.test.test.test.....可以无穷调用test是怎么回事? 展开
5个回答
展开全部
new A(),会在堆中开辟一片内存,引用保存在栈中。
test.test,只会造成对这片内存的引用计数+1.
而且,JVM的gc会防止内存泄漏,如果因为循环引用造成过多的内存泄漏,
JVM会自动回收内存。
test.test,只会造成对这片内存的引用计数+1.
而且,JVM的gc会防止内存泄漏,如果因为循环引用造成过多的内存泄漏,
JVM会自动回收内存。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Test test =new Test(); 这只是一个对象,如果你想要在定义一个对象 可以这样定义Test test1=new Test();
Test 是一个类,比如拿动物来说,那么Test就好比是动物类,像test 和test1就是一个具体的动物,比如你可以说test是老虎,test1是大象这些具体,不知道我理解的对不对,我也是初学者。见笑
Test 是一个类,比如拿动物来说,那么Test就好比是动物类,像test 和test1就是一个具体的动物,比如你可以说test是老虎,test1是大象这些具体,不知道我理解的对不对,我也是初学者。见笑
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样只能算定义,编译时期只给Test加载一份类内存,,在运行时要放在main函数中才会分配内存。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,你的代码就是错误的。看下面代码:
public class Test{
public static void main(String[] args){
Test() test = new Test();
}
}
然后呢,test 只是一个对象怎么会是无穷个呢?
public class Test{
public static void main(String[] args){
Test() test = new Test();
}
}
然后呢,test 只是一个对象怎么会是无穷个呢?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询