日历实例的创建成本特别高

时间:2015-02-24 19:43:24

标签: java

在Effective Java Item 5: Avoid creating unnecessary objects

此处Joshua Bloch Calendar instances are particularly expensive to create. ,但没有提到原因。

我的问题是 为什么它比其他类的实例创建更昂贵?

1 个答案:

答案 0 :(得分:0)

你实际上在评论中回答了你的问题。除非您想要处理所有复杂的日历,计算假期,工作​​日,时区等,否则简单的长期将为您服务。 Calendar需要大量内存(而不是8个字节),因为它必须提供所有这些转换,转换,比较,宽大,字段操作和基于区域设置的其他功能。它有很多字段盯着ERA,DAY_OF_WEEK,DAY_OF_WEEK_IN_MONTH等等。所有这些都用在某些动作中,因此类的性能比简单的长比较差得多。

当然你无法与其他类比较。每个班级都有自己的需求,可能比日历要复杂得多。