Java中的字符串是不可变的。当我们使用String文字(双引号)创建String时,它将首先在String池中查找具有相同值的String。
String first = "abc";
我的问题是,JVM搜索“ abc”的搜索算法是什么?它只是循环整个字符串池值?
答案 0 :(得分:2)
它只是循环整个字符串池值吗?
否。
我的理解是,字符串池是用本机代码实现的哈希表的一种形式。
因此,搜索算法是哈希表算法。在正常情况下,对字符串进行实习是摊销的O(1)
操作。
(链接的问与答包括一些C ++源代码的链接。)