gpt4 book ai didi

java - Java中哈希码的延迟初始化

转载 作者:行者123 更新时间:2023-11-29 07:25:44 28 4
gpt4 key购买 nike

为什么说不可变对象(immutable对象)使用惰性哈希码初始化?对于可变对象也是如此,我们只能在需要时才计算哈希码,这会导致惰性初始化吗?

最佳答案

对于可变类,存储 hashCode 通常没有多大意义,因为每次修改对象时都必须更新它(或者至少使它无效,以便下次重新计算它 hashCode() 被调用)。

对于不可变类来说,存储哈希码很有意义——一旦计算出来,它就永远不会改变(因为对象是不可变的),也不需要每次都重新计算hashCode () 被调用。作为进一步的优化,我们可以避免在第一次需要它之前计算该值(即调用 hashCode())——即,使用惰性初始化。

没有什么可以禁止您对可变对象执行相同的操作,这通常不是一个好主意。

关于java - Java中哈希码的延迟初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53306221/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com