Java中的字符串是不可变的。当我们使用字符串字面量(双引号)创建字符串时,它首先在字符串池中查找具有相同值的字符串。String first = "abc";我的问题是 JVM 搜索“abc”的搜索算法是什么?它只是循环整个字符串池值?
1 回答
繁花不似锦
TA贡献1851条经验 获得超4个赞
它只是循环整个字符串池值?
不。
我的理解是字符串池是一种用本机代码实现的哈希表形式。
所以搜索算法是哈希表算法。在正常情况下,实习字符串是一种摊销O(1)
操作。
(链接的问答包括一些指向 C++ 源代码的链接。)
添加回答
举报
0/150
提交
取消