当前位置: 技术问答>java相关
关于垃圾回收的问题
来源: 互联网 发布时间:2015-04-20
本文导语: 1.class b{ 1 Object m1() { 2 Object f = new Faloat(3) ; 3 Object o = new Object[3] ; 4 o[0] = f ; 5 f = null; 6 return o[0]; 7 } 8 } f在什么地方被garbage呢?我不明白o[0]也指向f,当f为null的时候是...
1.class b{
1 Object m1() {
2 Object f = new Faloat(3) ;
3 Object o = new Object[3] ;
4 o[0] = f ;
5 f = null;
6 return o[0];
7 }
8 }
f在什么地方被garbage呢?我不明白o[0]也指向f,当f为null的时候是否会真的一定发生回收?(此题没有答案)。
1 Object m1() {
2 Object f = new Faloat(3) ;
3 Object o = new Object[3] ;
4 o[0] = f ;
5 f = null;
6 return o[0];
7 }
8 }
f在什么地方被garbage呢?我不明白o[0]也指向f,当f为null的时候是否会真的一定发生回收?(此题没有答案)。
|
虽然f为null,但是new Faloat(3)在内存中仍然被o[o]指向,所以在方法未结束之前,new Faloat(3)不会符合垃圾收集的条件。
|
在7的时候
因为对象句柄f 超出了作用域{ },且它是在载里面创建的,
所以载指针自动上移动一位,f 释放掉了。注意:它是载里面的
东西,超出作用域后系统自动回收,和垃圾清理器没有关系
所以你找不到答案:)
因为对象句柄f 超出了作用域{ },且它是在载里面创建的,
所以载指针自动上移动一位,f 释放掉了。注意:它是载里面的
东西,超出作用域后系统自动回收,和垃圾清理器没有关系
所以你找不到答案:)
|
在7的时候
|
new Object[3]有被释放的可能