引言许多Java程序员都知道,在JVM中,字面量表示的字符串是一种特殊的对象,这些字符串被存储在堆中的一个叫做字符串常量池的哈希表结构中,由于字符串常量池是JVM虚拟机的一个组成部分,所以该哈希表是基于C++实现的。在C++实现的hotspot VM中,实际上字符串常量池(即StringTable)的结构就是一个<char*,java_lang_String>的哈希表结构当我们说String a="ab"时,实际上是在该哈希表中寻找键值为ab的键值对,当不存在时在该池中创建一个String对象,然后将该对象返回给引用a当我们说String a=new String("ab")时,"...