java - Java中包类和私有(private)静态内部类的区别?

标签 java performance dalvik

如果我有两个类 ThingThingAdapter,其中 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/

相关文章:

java - 从 Java 中的扩展类 B 将字符串添加到抽象类 A 中的数组

Android Map Performance poor because of many Overlays?

android - 原始类型是否在 Android 中被垃圾收集?

Android 理解堆大小

java - Android Textview 中的固定列

java - Android:读取文本文件并抓取特定单词后面的行

multithreading - 处理同一应用程序的多个线程的有效方法

Android游戏编程——堆问题

java - 您将如何在(惯用的)scala 中编写此 java 代码?

c++ - C++ vs C源代码的编译和执行时间