【发布时间】:2012-08-26 19:00:52
【问题描述】:
这是一个愚蠢的问题,但在这里。
我有一个多线程程序和一个独特元素的“全局”集合。由于性能,我拒绝了 ConcurrentHashMap 的同步 Set 实现。我真的不需要 Map 的 Value 部分,所以我想在内存使用方面使用 java 中最小的 Object。我以不同的方式解决了这个问题(在 Map 中多次引用单个布尔对象),但我仍然很好奇 Java 中最小的对象是什么。我一直认为它是布尔值,但我认为这不是真的 (Java - boolean primitive type - size, Primitive Data Types)
【问题讨论】:
-
原始类型与对象不同。 Boolean 是不可变的包装对象,boolean 是原始类型。
-
如果你真的想要
Set<K>,你可以使用Collections.setFromMap(new ConcurrentHashMap<K, Boolean>())。这为你做你的工作:-) -
如果你真的想要最小的对象,我可能只使用
Object... 因为它是所有其他Object... 的基类 :-)跨度>
标签: java performance memory collections