繁体   English   中英

Java中的包类和私有静态内部类之间的区别?

[英]Difference between package class and private static inner class in Java?

如果我有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是否会对此有所不同?

没有明显的性能差异。 在这种情况下,班级设计不应影响性能。 一个好的方法是编写对开发人员尽可能清晰的代码,然后对其进行概要分析以查找瓶颈(如果需要),然后仅优化受影响的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM