java中的bucket是如何衡量string pool的

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

在 Java 7u40 之前,默认池大小为 1009 个桶,但此值在较新的 Java 版本中有一些变化。准确地说,从 Java 7u40 到 Java 11 的默认池大小是 60013,现在增加到 65536。

那么,字符串池中的桶是什么?这些与驻留字符串的数量有何可比性?这个概念类似于哈希图中的桶吗?


慕村225694
浏览 84回答 1
1回答

阿晨1998

那么,字符串池中的桶是什么?字符串池基本上是一个哈希表。哈希表包含buckets或slots。这些与驻留字符串的数量有何可比性?它是实现定义的(特定于 JVM)并且取决于单个存储桶存储的条目数。理想情况下,一个桶保留一个条目。这个概念类似于哈希图中的桶吗?是的,这是相同的想法。为什么默认池大小在增长?(我的问题)分配的桶越多,负载因子就越低,这会对性能产生积极影响。我猜想表中占用的初始条目数会增加,因此保持负载因子更新(至少在同一级别)很重要。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java