我有大量没有未初始化字段的实体对象,这些字段的数据类型范围从基元到集合对象等。但问题是,大多数情况下并非所有字段都是必需的,因此它们保持未初始化状态。
创建了大量没有这样的实体对象。每个用户请求销毁!所以我有点担心这在内存或性能方面是否会引起关注?除非需要,否则不会初始化字段。所以我想问一下,如果我在课堂上声明很多字段但是初始化/只使用几个字段是否真的很重要?
答案 0 :(得分:1)
通过this java教程页面Fields that are declared but not initialized will be set to a reasonable default by the compiler.
这意味着每个未初始化的字段将占用少量字节,通常为int
和对象的4个字节。
也就是说,它在很大程度上取决于您的特定系统 - 您的对象有多少字段,每个请求创建了多少对象,每秒有多少请求等等。这可能会对不同的垃圾收集器产生不同的影响。
我建议你做一些分析 - 用当前对象和大量请求查看系统(CPU,内存)的负载。然后,创建一些具有较少字段的虚假对象,并使用相同的负载重新运行测试。如果你无法衡量任何差异,那么可能没有什么可担心的,你可以使用几个额外的未使用的字段。