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