2024-03-14  阅读(139)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://www.skjava.com/mianshi/baodian/detail/6290005769

回答

基于以下几个原因。

  • 缓存哈希码

String 内部缓存了其哈希码,第一次调用 hashCode() 时计算哈希码,之后就直接返回缓存的值。这就意味着当我们使用 String 作为 HashMap 的 key 时,计算哈希码的开销只发生一次,这提高了使用 String 作为键时的性能。

/** Cache the hash code for the string */
private int hash; // Default to 0
  • String 是不变得

Java 中的 String 是不可变的,意味着一旦创建,String 对象的内容就不能被改变。当我们使用一个对象作为 HashMap 的 key 时,其哈希码必须保持不变,否则就会找不到键值对了,而 String 是不变的,其哈希码也不会改变,这保证了 key 的一致性。


更多阅读<<<<<

String为什么要被设计成不可变的?

String是如何实现不可变的?

阅读全文
  • 点赞