Просматривая статью это о пуле строк и его изменениях с годами, я наткнулся на следующее утверждение:
Prior to Java 7u40, the default pool size was 1009 buckets but this value was subject to a few changes in more recent Java versions. To be precise, the default pool size from Java 7u40 until Java 11 was 60013 and now it increased to 65536.
Итак, что такое ведра в пуле строк? Как они сопоставимы с количеством интернированных строк? Похожа ли концепция на ведра в хэш-картах?
So, what are buckets in String pool?
Пул строк в основном хэш-таблица. Хэш-таблица содержит ведра или слоты.
How are these comparable to the number of interned Strings?
Это определяется реализацией (специфично для JVM) и зависит от того, сколько записей хранится в одном сегменте. В идеале одно ведро содержит одну запись.
Is the concept similar to buckets in hashmaps?
Да, это та же идея.
Why is the default pool size growing? (my question)
Чем больше сегментов выделено, тем ниже становится коэффициент нагрузки, что положительно влияет на производительность. Я предполагаю, что начальное количество записей, занятых в таблице, растет, поэтому важно поддерживать актуальность коэффициента загрузки (по крайней мере, на том же уровне).
Крутой ответ! Следующим моим вопросом был бы рост размера!!
чуть ниже результатов поиска Google... codepumpkin.com/string-pool-java