黑马程序员技术交流社区

标题: 内部类在内存中的加载过程 [打印本页]

作者: 刘海陆    时间: 2013-3-27 21:32
标题: 内部类在内存中的加载过程
本帖最后由 刘海陆 于 2013-3-28 05:15 编辑

静态内部类 里面的成员(包括静态的和非静态的)都是先加载进内存吗?
如果非静态的函数不是先加载进内存的话,应该能访问外部类的非静态成员。
作者: 胡峰    时间: 2013-3-27 21:56
希望这个图对楼主有帮助

静态内存图.JPG (58.17 KB, 下载次数: 87)

静态内存图.JPG

作者: 米腾达    时间: 2013-3-27 22:58
本帖最后由 米腾达 于 2013-3-27 23:00 编辑

1、静态内部类也是一个类,它里面的成员加载顺序与外部类一样,静态的成员在程序运行时加载进内存,非静态的成员在创建对象时在内存中产生。
2、内部类之所以能够访问外部类,是因为内部类中持有一个对外部类对象的引用,即 外部类.this  。而静态内部类要按照static修饰的原理,this在其内部是无指向的,所以也就访问不到外部类对象中的非静态成员了。
作者: 刘海陆    时间: 2013-3-28 05:15
米腾达 发表于 2013-3-27 22:58
1、静态内部类也是一个类,它里面的成员加载顺序与外部类一样,静态的成员在程序运行时加载进内存,非静态 ...

嗯嗯,明白了,谢谢哈
作者: 米腾达    时间: 2013-3-28 23:03
刘海陆 发表于 2013-3-28 05:15
嗯嗯,明白了,谢谢哈

为嘛不加分啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2