本帖最后由 马睿 于 2012-9-15 18:23 编辑
静态类只能以内部类的形式存在吗?
是
不明白为什么内部类中有静态成员,则该类必须定义为静态?
这个是个坑,首先静态成员变量都是放在静态方法区里的,他们不需要内部类构造函数支持,会先被直接加载
而“非静态内部类”的建立又要在外部类的构造函数支持下才能产生,而自己又是非静态内部类,那么必须也要依赖自己的内部构造函数。这样就会和 “他们不需要内部类构造函数支持,会先被直接加载” 这个原则矛盾= =然后就坑了,于是就必须要写static不然无法直接加入静态方法区
此外非静态内部类中static final是允许的,因为是“常量”……………会在运行前直接加载到内存里
把内部类及其成员定义为静态有什么好处吗?
方便调用,节约内存空间
|