== equals()問題



解釋:

s1和s2都不是通過new關鍵字創建的字符串,所以這兩個引用指向的字符串都不是堆中的,而是在常量池中的“aaa”,編譯器優化後,它們是指向同一個在常量池中的“aaa”.
s3是通過控制檯讀取的輸入,next()方法返回一個String,這個String應該是在堆中根據輸入的字符串創建的。因此s1和s2的引用是相同的,s3的引用指向的是堆根據輸入新創建的字符串,和s1,s2指向的常量池中的肯定不同。String類重寫了equals()方法,比較的是字符串中每個字符是否相同,s1和s3每個字符都相同,因此返回true

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章