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在这里是相当于一个指针指向了新的堆内存吗? 展开
......
a = Test(2);
问题:
这里原先Test(1)的对象还在吗?
java会自动清除吗?
java有delete机制吗?(据我所知没有 为什么没有/不需要)
a在这里是相当于一个指针指向了新的堆内存吗? 展开
展开全部
这里原先Test(1)的对象还在吗?不一定,如果回收是随机的
java会自动清除吗?如果你在程序其他地方没有再引用Test(1)对象, 在GC的紧缩标记回收阶段会发现没有了refer,会被清除掉。
java有delete机制吗?没有,所谓虚拟机,就是一个java。exe进程,这个进程已经占用了-Xms=?M这么大的初始内存,将来运行中可能会增长到-Xmx这么大的内存,再不够用就outofmem了。你不需要像c一样去析构,因为c是找操作系统拿内存,你不释放,操作系统认为你在用,java中,你找虚拟机要,虚拟机会帮你管理,你不要了,它就收回去给别人用。
a在这里是相当于一个指针指向了新的堆内存吗?非常正确
java会自动清除吗?如果你在程序其他地方没有再引用Test(1)对象, 在GC的紧缩标记回收阶段会发现没有了refer,会被清除掉。
java有delete机制吗?没有,所谓虚拟机,就是一个java。exe进程,这个进程已经占用了-Xms=?M这么大的初始内存,将来运行中可能会增长到-Xmx这么大的内存,再不够用就outofmem了。你不需要像c一样去析构,因为c是找操作系统拿内存,你不释放,操作系统认为你在用,java中,你找虚拟机要,虚拟机会帮你管理,你不要了,它就收回去给别人用。
a在这里是相当于一个指针指向了新的堆内存吗?非常正确
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
原先的Test(1)还存在,a指向了一个新地址,也就是堆内存的地址。JAVA有GC,垃圾回收机制,无需程序员考虑的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Test(1)还在
会自动清除
java有自动回收机制 new 的对象多了 如果长时间没用会自动清除
可以那样理解 只是将a指的对象换了 但是原先的对象还在
会自动清除
java有自动回收机制 new 的对象多了 如果长时间没用会自动清除
可以那样理解 只是将a指的对象换了 但是原先的对象还在
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该不行吧,这样的话编译器无法区分啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询