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

标签 java

在 Effective Java 中 Item 5: Avoid creating unnecessary objects

这里 Joshua BlochCalendar 实例的创建成本特别高。 但没有提到任何理由那里。

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

最佳答案

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

当然你无法与其他类(class)相比。每个类都有自己的需求,并且可能比 Calendar 更复杂、更昂贵。

关于java - 日历实例的创建成本特别高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28704832/

相关文章:

java - Lucene:按字段的值长度搜索/过滤

java - 从 wsdl 创建 SOAP 请求

java - swagger ui 无法通过 micronaut 多模块项目 gradle build 访问

java - DataInputStream readByte 返回一个大值

java - 安卓 : Modification of my layout in real time

java - 使用自定义 Web 代理时 HTTP 响应未接收到所有数据

Java key 监听器不起作用

Java传递值

java - 在 Java 中将 DOM 节点呈现为字符串而不指定 namespace

java - 在 Spring Boot 项目上创建名称为 'entityManagerFactory' 的 bean 时出错