Java中,使用"=="比较字符串时,判断的是两个字符串是否存放在相同的位置。如果两个字符串存放在相同的位置,那么它们就是相同的,使用"=="比较的结果也就是True。但Java虚拟机并不总是使两个相同的字符串共享一个位置,它可能会存放多个相同的拷贝在不同的位置。
只有通过字面赋值的时候,相同的字符串才会共享位置:
例如:x = "Hello"; y = "Hello";
x == y; 就是True
x == "Hello"; 也是True
但如果另有一个变量z,不是通过这种字面的方式被赋值的,即便z的值也是"Hello",
x == z; 的结果却是False
例如 x.substring(0,3) == "Hel"; 的结果就是False
因此,在进行字符串比较时,不推荐使用"==",推荐使用equals函数