Java字符串池实现了什么搜索算法

时间:2018-12-10 03:56:59

标签: java

Java中的字符串是不可变的。当我们使用String文字(双引号)创建String时,它将首先在String池中查找具有相同值的String。

String first = "abc";

我的问题是,JVM搜索“ abc”的搜索算法是什么?它只是循环整个字符串池值?

1 个答案:

答案 0 :(得分:2)

  

它只是循环整个字符串池值吗?

否。

我的理解是,字符串池是用本机代码实现的哈希表的一种形式。

因此,搜索算法是哈希表算法。在正常情况下,对字符串进行实习是摊销的O(1)操作。

(链接的问与答包括一些C ++源代码的链接。)