java用一个对象名new两个

Testa=Test(1);//constrution;......a=Test(2);问题:这里原先Test(1)的对象还在吗?java会自动清除吗?java有dele... Test a = Test(1); // constrution;
......
a = Test(2);
问题:
这里原先Test(1)的对象还在吗?
java会自动清除吗?
java有delete机制吗?(据我所知没有 为什么没有/不需要)
a在这里是相当于一个指针指向了新的堆内存吗?
展开
 我来答
zhuimengsinian
2015-11-13
知道答主
回答量:18
采纳率:0%
帮助的人:10.9万
展开全部

不知道你说的是不是这种效果

/*

 *使用一个类名new两个对象

 * */

public class Test {

     //String为类名

     public static void main(String args[]){

         String param1 = new String("我是第一个对象");

         String param2 = new String("我是第二个对象");

         System.out.println(param1);

         System.out.println(param2);

     }

}

alexmao4
2014-06-30 · TA获得超过1741个赞
知道大有可为答主
回答量:2350
采纳率:50%
帮助的人:463万
展开全部
这里原先Test(1)的对象还在吗?不一定,如果回收是随机的

java会自动清除吗?如果你在程序其他地方没有再引用Test(1)对象, 在GC的紧缩标记回收阶段会发现没有了refer,会被清除掉。

java有delete机制吗?没有,所谓虚拟机,就是一个java。exe进程,这个进程已经占用了-Xms=?M这么大的初始内存,将来运行中可能会增长到-Xmx这么大的内存,再不够用就outofmem了。你不需要像c一样去析构,因为c是找操作系统拿内存,你不释放,操作系统认为你在用,java中,你找虚拟机要,虚拟机会帮你管理,你不要了,它就收回去给别人用。

a在这里是相当于一个指针指向了新的堆内存吗?非常正确
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
angkorde
2014-06-30 · 超过13用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:20.1万
展开全部
原先的Test(1)还存在,a指向了一个新地址,也就是堆内存的地址。JAVA有GC,垃圾回收机制,无需程序员考虑的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鲜明又挺拔的雏菊D
2014-06-30 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:111
采纳率:100%
帮助的人:86.4万
展开全部
Test(1)还在
会自动清除
java有自动回收机制 new 的对象多了 如果长时间没用会自动清除
可以那样理解 只是将a指的对象换了 但是原先的对象还在
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
就要占前排
2015-11-21 · TA获得超过137个赞
知道答主
回答量:86
采纳率:100%
帮助的人:28.4万
展开全部
应该不行吧,这样的话编译器无法区分啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式