首先看一段程序:

image.png
abdc四個字符串的hashcode都相等:是因為String重寫了object的hashcode方法:

image.png
由重寫的方法可知,String的hashcode只和value值相關(guān),和內(nèi)存地址無關(guān)。
當(dāng)比較abdc四個字符串的地址時:
- 第一個true,是因為a和b是指向同一個變量,這個變量在變量池中。
- 第二個false,是因為b指向變量池中的一個變量,而c指向堆棧中變量,所以地址不同。
- 第三個false,通過c和d是分別指向堆棧中兩個不同的對象,所以地址不同。
- 第四個false,原理同第二個false。