【发布时间】:2014-07-09 15:30:56
【问题描述】:
如果我有两个类Thing 和ThingAdapter,其中ThingAdapter 仅在类Thing 中使用,那么将ThingAdapter 定义为@ 的静态内部类之间是否存在性能(或其他方面)差异987654327@ 与旁边的包范围类?
我正在查看的场景有 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 会不会区别对待?
【问题讨论】:
-
真正的区别是:第一堂课在课堂上,名字为
Thing$ThingAdapter,第二堂课只是ThingAdapter。所以没有区别。 -
如果调用私有方法,可能会对性能产生影响。问题中的代码没有,所以没有区别。 (见stackoverflow.com/questions/24210531/…。)
标签: java performance dalvik