java的内部类和外部类的成员变量的生命周期

撸红薯 发布于 2014/04/23 11:07
阅读 972
收藏 0
/**
 * AWT Sample application
 *
 * @author 
 * @version 1.00 14/04/16
 */
 
class A
{
	public int s = 10 ;
	class B
	{
	public int get()
		{
			return s ;
		}
	}	
}

public class Guodong 
{
    {}
    public static void main(String[] args) 
    {
    	A a = new A();
    	A.B s = a.new B() ;
    	a = null ;
    	System.out.println(s.get()) ;
    }
}

其实很简单的东西。我是学c++的这段时间开始研究java。习惯用内存的观念去理解程序。

但是这个内存我就不理解了。成员变量不是属于外部类的实例的嘛。为啥这个实例被干掉了。内部类还是可以访问的?很晕。







加载中
0
huan
huan

"这个实例被干掉了"??你是指 a = null ; 么? 这只是实例的一个引用被置为空了,实例还好好的在堆中躺着呢。

A a = new A();

A b = a;

a=null; // a 被干掉了?!

b.dosomething(); //为啥b还活着呢?

撸红薯
撸红薯
好吧 跪了
返回顶部
顶部