equals的疑惑
class?test{ ????public?static?void?main(String[]?args)?{ ????????String?a?=?"1"; ????????String?b?=?"1"; ????????System.out.println(a.equals(b)); ????}???? }
這段代碼中.為什么會輸出true呢 它們的值一樣的.但是那個哈希碼也是一樣的嗎
class?test{ ????public?static?void?main(String[]?args)?{ ????????String?a?=?"1"; ????????String?b?=?"1"; ????????System.out.println(a.equals(b)); ????}???? }
這段代碼中.為什么會輸出true呢 它們的值一樣的.但是那個哈希碼也是一樣的嗎
2018-08-09
舉報
2018-08-09
String類特殊的,當創建一個String的實例后,這個值會保存在一個叫做存儲池的位置,當兩個字符串的值相同時,變量名實際會指向同一內存空間。
2018-08-09
b和a指向同一個引用