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函數