关于java垃圾回收

本文通过一个Java示例探讨了对象何时符合垃圾回收条件的问题。在示例中,一个浮点数对象被创建并赋值给一个对象引用,随后该引用被设置为null,但对象仍可通过数组引用访问。文章解释了为什么此对象不会立即成为垃圾收集的目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 Given:  
public   class   X   {
        public   object   m()   {
                object   o   =   new   float   (3.14F);               //line   3
                object   []   oa   =   new   object   [1];
                oa[0]=   o;               //line   5
                o   =   null;               //line   6
                oa[0]   =   null;       //line   7
                return   o;               //line   8
        }
}  
When   is   the   float   object   created   in   line   3,   eligible   for  
garbage   collection?  
A.   Just   after   line   5
B.   Just   after   line   6
C.   Just   after   line   7
D.   Just   after   line   8(that   is,   as   the   method   returns)  
答案C
 

Given:
1. public class X (
2. public object m () {
3. object o = new float (3.14F);
4. object [] oa = new object [1];
5. oa[0]= o;
6. o = null;
7. return oa[0];
8. }
9. )
When is the float object created in line 3, eligible for garbage collection?
A. Just after line 5
B. Just after line 6
C. Just after line 7 (that is, as the method returns)
D. Never in this method.
答案: D
 

任何对象名都只是类实例化后,开辟的那一片内存空间首地址的别名

o虽然被null了,但是oa[0]仍然在使用这片空间,所以这片空间是不回被回收的

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值