这个问题在这里已有答案:
Java中的字符串是不可变的 . 当我们使用String literal(双引号)来创建String时,它首先在String池中查找具有相同值的String .
String first = "abc";
我的问题是JVM搜索“abc”的搜索算法是什么?它只是循环整个String Pool值?
它只是循环整个String Pool值?
没有 .
我的理解是字符串池是在本机代码中实现的哈希表的一种形式 .
因此搜索算法是一种哈希表算法 . 在正常情况下,实习字符串是一个摊销的 O(1) 操作 .
O(1)
(链接的问答包括一些指向C源代码的链接 . )
1 回答
没有 .
我的理解是字符串池是在本机代码中实现的哈希表的一种形式 .
因此搜索算法是一种哈希表算法 . 在正常情况下,实习字符串是一个摊销的
O(1)
操作 .(链接的问答包括一些指向C源代码的链接 . )