JAVA,在类中NEW一个本类的对象,内存分配的问题。

我是JAVA初学者,请问在类中NEW一个这个类的对象,是不是会在内存中分配无穷尽个对象呢?比如:publicclassTest{Testtest=newTest();}这... 我是JAVA初学者,请问在类中NEW一个这个类的对象,是不是会在内存中分配无穷尽个对象呢?比如:
public class Test{
Test test = new Test();
}
这样是不是会在内存中出现无穷个对象?
test.test.test.test.test.....可以无穷调用test是怎么回事?
展开
 我来答
百度网友47638c80c
2011-09-03 · TA获得超过112个赞
知道答主
回答量:198
采纳率:100%
帮助的人:86.1万
展开全部
会。
实际上会出现堆栈溢出 Exception in thread "main" java.lang.StackOverflowError

原因和你想的一样,就是类的递归定义。

如果你理解了原因,你会对类的实例化有深刻理解
se_july
2011-09-02 · 超过16用户采纳过TA的回答
知道答主
回答量:25
采纳率:0%
帮助的人:21.6万
展开全部
new A(),会在堆中开辟一片内存,引用保存在栈中。
test.test,只会造成对这片内存的引用计数+1.
而且,JVM的gc会防止内存泄漏,如果因为循环引用造成过多的内存泄漏,
JVM会自动回收内存。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友880152f53
2011-09-02 · 超过21用户采纳过TA的回答
知道答主
回答量:111
采纳率:0%
帮助的人:67.4万
展开全部
Test test =new Test(); 这只是一个对象,如果你想要在定义一个对象 可以这样定义Test test1=new Test();

Test 是一个类,比如拿动物来说,那么Test就好比是动物类,像test 和test1就是一个具体的动物,比如你可以说test是老虎,test1是大象这些具体,不知道我理解的对不对,我也是初学者。见笑
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cy...c@163.com
2011-09-02 · TA获得超过100个赞
知道答主
回答量:316
采纳率:7%
帮助的人:60.1万
展开全部
这样只能算定义,编译时期只给Test加载一份类内存,,在运行时要放在main函数中才会分配内存。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hadoop1
2011-09-02
知道答主
回答量:4
采纳率:0%
帮助的人:3.4万
展开全部
首先,你的代码就是错误的。看下面代码:
public class Test{
public static void main(String[] args){
Test() test = new Test();
}
}
然后呢,test 只是一个对象怎么会是无穷个呢?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式