如果我有两个类 Thing
和 ThingAdapter
,其中 ThingAdapter
仅在类 Thing
中使用,则为将 ThingAdapter
定义为 Thing
的静态内部类与与其并列的包范围类之间存在性能(或其他)差异吗?
我正在查看的场景使用了 ThingAdapter
,有点像
public class Thing {
private ThingAdapter thingAdapter;
public doStuff() {
thingAdapter = new ThingAdapter();
}
}
并且 ThingAdapter
可以像这样实现
public class Thing {
// stuff
private static class ThingAdapter {
// adapter stuff
}
}
对比
public class Thing {
// stuff
}
/* package */ class ThingAdapter {
// adapter stuff
}
我当前工作的环境是 Android,我还没有看到两者之间有任何性能差异 - 但没有实际进行基准测试。另外,Dalvik 和 JVM 会以不同的方式处理这个问题吗?
最佳答案
没有明显的性能差异。在这种情况下,类设计不应影响性能。一个好的方法是为开发人员编写尽可能清晰的代码,然后对其进行分析以查找瓶颈(如果需要),然后仅优化受影响的代码。
关于java - Java中包类和私有(private)静态内部类的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24657822/