Java:HashMap的内联初始化的性能影响
这个问题在这里已经有了答案:
这个问题已经在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