PDF 课件和源代码下载地址:
https://gitee.com/geektime-geekbang/LetsJava
作者回复: ==是比较引用指向的对象是不是同一个对象。String的特殊之处是有些JVM会对String做优化。如果没有优化,new String和另外的new String肯定是俩对象,地址肯定不一样。JVM做的优化就是在创建String对象之前找一下JVM的缓存里是否已经有这样一个字符串了。有就直接返回那个字符串。 这样就造成一种在别的对象上不会发生的情况,new出来的String其实并不是真的new的,而是之前就已经存在的。这样,== new String 就会返回true。
作者回复: 是什么错误?