5

在阅读这篇关于字符串池及其多年来的变化的文章时,我遇到了以下声明:

在 Java 7u40 之前,默认池大小为 1009 个存储桶,但该值在最近的 Java 版本中会发生一些变化。准确地说,从 Java 7u40 到 Java 11 的默认池大小是 60013,现在增加到 65536。

那么,字符串池中的存储桶是什么?这些与实习字符串的数量有什么可比性?这个概念是否类似于哈希图中的存储桶?

4

1 回答 1

3

那么,字符串池中的存储桶是什么?

字符串池基本上是一个哈希表。哈希表包含

这些与实习字符串的数量有什么可比性?

它是实现定义的(特定于 JVM),取决于单个存储桶存储的条目数。理想情况下,一个桶保留一个条目。

这个概念是否类似于哈希图中的存储桶?

是的,这是同一个想法。

为什么默认池大小会增长?(我的问题)

分配的桶越多,负载因子越低,这对性能产生积极影响。我猜表中占用的初始条目数会增加,因此保持负载因子更新(至少在同一级别)很重要。

于 2019-05-30T10:42:02.153 回答