【发布时间】:2011-07-29 18:33:35
【问题描述】:
我最近使用 JSON 来存储同一类的一定数量的子类的配置参数。为了保持统一的接口,我为父类提供了公共void setParameter(String, String) 和String getParameter(String) 方法。然后,每个子类将提供的参数转换为其本机类型,并使用它们进行某种计算。
现在,我想知道:既然我已经将每个参数存储在 HashMap 中,那么为每个参数保留一个具有正确类型的单独字段真的有意义吗?考虑到我需要经常使用它们,每次我需要它们时将 String 参数转换为其本机类型的计算开销是多少?
谢谢
图努兹
【问题讨论】:
-
你也可以使用 Float.valueOf() 来代替 Float.parseFloat() 它会提高一点性能,因为它使用了一个简单的缓存。
-
@bvk256: Float.valueOf 不做任何缓存。 javadoc 建议这样做,但如果您查看源代码(至少在 Sun JDK 中),它不会。它只是创建一个新实例。整数类型的 valueOf 方法可以,但浮点类型没有。
标签: java performance interface types casting