java用一个对象名new两个

2025-03-06 13:57:48
推荐回答(5个)
回答1:

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

/*

 *使用一个类名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);

     }

}

回答2:

这里原先Test(1)的对象还在吗?不一定,如果回收是随机的

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

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

a在这里是相当于一个指针指向了新的堆内存吗?非常正确

回答3:

原先的Test(1)还存在,a指向了一个新地址,也就是堆内存的地址。JAVA有GC,垃圾回收机制,无需程序员考虑的。

回答4:

Test(1)还在
会自动清除
java有自动回收机制 new 的对象多了 如果长时间没用会自动清除
可以那样理解 只是将a指的对象换了 但是原先的对象还在

回答5:

应该不行吧,这样的话编译器无法区分啊