在 Effective Java 中 Item 5: Avoid creating unnecessary objects
这里 Joshua Bloch
说Calendar 实例的创建成本特别高。
但没有提到任何理由那里。
我的问题是为什么它比创建其他类的实例更昂贵?
最佳答案
您实际上在评论中回答了您的问题。除非你想处理日历的所有复杂性,计算假期、工作日、时区等,否则简单的 long 将为你服务。 Calendar 需要大量内存(而不是 8 字节长),因为它必须提供所有这些基于语言环境的转换、转换、比较、宽大、字段操作和其他功能。它有很多字段以 ERA、DAY_OF_WEEK、DAY_OF_WEEK_IN_MONTH 等开头。所有这些都用于某些操作,因此类的性能比简单的长比较差得多。
当然你无法与其他类(class)相比。每个类都有自己的需求,并且可能比 Calendar 更复杂、更昂贵。
关于java - 日历实例的创建成本特别高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28704832/