Java:HashMap的内联初始化的性能影响

这个问题在这里已经有了答案:

  • Java“双Brace初始化”的效率? 15个答案

  • 这个问题已经在SO上多次讨论过了。 即使数据结构不同(Set,HashSet)而不是(Map,HashMap)我个人认为以下是最好的讨论,应该澄清你所有的疑问:Java的“双Brace初始化”的效率?


    这不是一个好的做法,因为它创建了一个新的匿名内部类,JVM必须使用更多内存来跟踪。 除此之外,它几乎是无害的。

    编写此代码的更好方法是使用初始化块:

    Map<String, String> aMap = new HashMap<String, String>();
    {
        aMap.put("gloves", "hand");
        aMap.put("hat", "head");
        aMap.put("shoes", "feet");
        aMap.put("scarf", "neck");
    }
    

    使用上述代码初始化内联hashmaps的性能意味着什么?

    几乎没有。 第一次做这件事时,会有额外的类加载,除非你关心你使用的类的数量,否则这种加载不太可能是重要的。

    我没有看到这经常被使用。 它被认为是一个很好的Java练习?

    如果它使代码更清晰,尤其是在单元测试中,我认为这是一个好习惯。

    如果这个集合被放入本地线程中,这是不好的做法,因为这会阻止模块卸载。

    链接地址: http://www.djcxy.com/p/82389.html

    上一篇: Java: Performance Implications of Inline Initialization Of HashMaps

    下一篇: Double {{ }} syntax question in java