【A对象创造B对象,然后A退出,B还能留存?】
我是在看到swing编程中发现的一个问题A窗口生成一个B窗口,结果A叉掉之后,B依然正常工作
这种现象似乎很常见,但是不太明白原因,请高手指点。 --------------------编程问答-------------------- 就比如说妈妈生下了你,若干年后妈妈去了,但是你还在。 --------------------编程问答--------------------
这个比喻很形象 --------------------编程问答--------------------
这是窗口的生命周期问题,lz自己去找吧。 --------------------编程问答--------------------
对象创建以后,关键要看有没有什么变量在使用(引用)它,如果有,那就不能回收,如果没有了当然可以纳入回收范围(这与对象是如何创建的应该没关系).
--------------------编程问答--------------------
.............. --------------------编程问答--------------------
这哥们比喻很形象... 哈哈 --------------------编程问答-------------------- 此情况A和B是独立的,只是A和B之间拥有B在A上的这种关系 --------------------编程问答--------------------
果然很形象 --------------------编程问答-------------------- 又不是垃圾回收。。。。 --------------------编程问答-------------------- 晕 --------------------编程问答-------------------- 一楼这形象的比喻。。。。。。我擦了!!!! --------------------编程问答-------------------- new 了一个新对象。它的存在与否与第一个无关 --------------------编程问答-------------------- 我竟然也是这么想的。哈哈 --------------------编程问答-------------------- - - 如果说每个对象都是一个人,那么只要还有人要这个B,她就不会消失 --------------------编程问答--------------------
new之后,不正是A指向B?A关掉,不就是A没有指向,难道不回收?多谢 --------------------编程问答-------------------- --------------------编程问答-------------------- 对象是否存在,和谁持有对象有关,而不是谁创建了对象
假设不存在某对象的引用,该对象仍会存在一段时间,直到被垃圾回收掉 --------------------编程问答-------------------- A与B是独立的,不是父子线程那样。 --------------------编程问答-------------------- 这个简单的例子,这么费解吗,大家不用无限制发散
就是A不但new,而且唯一持有B,然后A界面叉掉,B还在
请明白的朋友帮忙解释
我觉得可能是java和os的一些互动机制或java的swing机制造成的假象:表面A唯一持有B,其实还有机制内别的对象持有了B???不懂,所以请教大家,谢谢了 --------------------编程问答-------------------- 楼主你想多了,没有人规定B一定要被别人拥有才能存在,再说在A中创建了B并不代表B是A的对象, --------------------编程问答-------------------- 围观一楼,大亮~ --------------------编程问答--------------------
+1 --------------------编程问答-------------------- 19楼没有说明白吗?难道要糊里糊涂就这么算了? --------------------编程问答-------------------- java里的窗口可以察除?好像都是点叉的时候是隐藏吧?你上网找资料看看,我记不太清在那本书上看的了。
补充:Java , Java SE