【发布时间】:2012-03-08 16:52:27
【问题描述】:
我有一个包含大约 10 个属性的 (java) 类,其中许多可能保持未初始化并且在对象的生命周期内未访问。
因此,我正在考虑使用 Map<String,Object> 作为属性名称 -> 属性值映射而不是大量字段,以节省资源。
现在我想知道,是否存在任何官方或非官方规则,何时以及如何决定所描述的可能性之一。在我应该考虑使用这样的地图之前,一个类应该有多少属性?我应该使用它吗?
提前感谢您对此的建议/意见。
【问题讨论】:
-
JVM 正在执行比您想象的更智能的优化。所以不,你不需要它。
-
所以你的意思是,如果我的想法是节省资源,那么JVM可能也会优化它?是的,这听起来很合理,谢谢! :-)
-
@Murat 你所说的实现起来似乎相当复杂,并且至少涉及一个额外的间接和一些开销。另外我不知道有任何 JVM(甚至是学术的)已经实现了这个。所以请发布一些链接.. 现在显然 Java 中未初始化的变量可以占用的最糟糕的东西是 8 字节,所以我们最多保存
80 bytes - overhead of a map这意味着从内存 pov 解决方案可能更糟,但仍然..
标签: java optimization coding-style