我知道字符串常量池本质上是一个ConcurrentHashMap。 JVM使用FlyWeight设计模式来节省一些内存。 JVM将查找池(ConcurrentHashMap)并返回旧对象的引用,否则它将创建新对象。
考虑创建一个字符串文字
String literal = "Hello Java!"
JVM不会创建" Hello Java!"宾语。它将首先查找池。 我的问题是
JVM如何执行此查找,因为对象" Hello Java!"还不存在,所以它不能调用hashcode方法吗?