是内部类比普通类更轻量,还是最终java编译内部类和普通类一样?
我知道 java 中的类本身并不是非常轻量级的,它们会占用部分 permgen 内存,所以我想知道是否最好使用类似闭包的函数作为内部类,或者标准类是否也可以好吗?
最佳答案
内部类和匿名内部类都编译成.class
文件。例如:
class Outer {
class Inner {
}
Object function() {
return new Object() {
};
}
}
会生成三个.class
文件,Outer.class
、Outer$Inner.class
、Outer$1.class
。它们并不比其他类更“轻量级”,并且(据我所知)从性能的角度来看,使用一个类比另一个类没有优势。当然,内部类,尤其是匿名内部类在常规类更难编码的情况下非常有用,但这是一个单独的问题。
关于java - 内部类是轻量级的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4812464/