java基础问题,假如有个类A,声明A a=new A(1);然后又赋值a=new A(2),那第
答案:6 悬赏:40 手机版
解决时间 2021-03-23 04:40
- 提问者网友:捧腹剧
- 2021-03-22 13:30
java基础问题,假如有个类A,声明A a=new A(1);然后又赋值a=new A(2),那第
最佳答案
- 五星知识达人网友:三千妖杀
- 2021-03-22 13:41
我来简单解释下吧,首先楼主要明白java中用new创建对象,jvm究竟干了些什么事情。 A a=new A(1);这句话,先看等式右边,new A(1),以1为构造参数 在 堆里面创建了一个对象。然后看等式左边:在栈中创建了一个引用a,a指向的地址就是堆里面 new A(1)的这个地址。再看这句 a=new A(2),其实是又在堆里面创建了一个new A(2)对象,然后把引用小a指向A(2)。至于第一个new A(1)这个对象还在堆里面,注意,并没有被销毁掉。那它什么时候被销毁呢?java里面有个垃圾回收,它会检测堆里面所有的对象,一旦发现,栈里面没有引用指向它了,那堆里面这个对象就会被销毁。也就是说,堆里面的对象什么时候销毁是由垃圾回收干的,我们不需要关心。------一口气打了这么多,希望我解释清楚了追问恩,彻底明白了,谢谢。。主要就是检查对象是否被引用。。
全部回答
- 1楼网友:白昼之月
- 2021-03-22 20:16
会储存起来追问那么第一个什么时候会被销毁?追答在下一个新的对象之前追问。。。那你说的储存起来怎么回事
- 2楼网友:低血压的长颈鹿
- 2021-03-22 18:40
都是一个对象 只是对象属性的值发生了改变 你可以自己做实验啊 这些小细节要自己手动去试 多动手
- 3楼网友:从此江山别
- 2021-03-22 17:11
new的两个对象在堆内存里,a是对象的引用。销毁是垃圾回收器的事,他会自动管理的
- 4楼网友:痴妹与他
- 2021-03-22 16:24
如果没有其他的对这对象的引用,这个对象会被销毁,但一般不会马上回收。垃圾回收器会慢慢扫描的,所以回收时间是不确定的。
- 5楼网友:慢性怪人
- 2021-03-22 15:18
不会的。取决于JVM虚拟机的垃圾处理算法
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯