内部类的生命周期和方法中的局部变量是不一样的,内部类也是一个类,存储在堆内存中。
只有对该类的引用消失后,内部类才会消亡。而方法中的局部变量是存储在栈内存中的,当调用结束
后,会消失。也就是内部类的生命周期超过了方法中局部变量的生命周期,内部类可能会调用已经消亡的属性,存在安全隐患,故而方法中的内部类不能访问方法中的局部变量。但是被final修饰的变量存放在哪里,网上有种说法是存在于堆内存,我不确定。另外,此文章可能对你有帮助http://blog.csdn.net/adderking/article/details/7622983如有错误,欢迎批评指正。
|