课堂作业4
?
一、
解答:在Java中,內容相同的字串常量(“Hello”)只保存一份以節約內存,所以s0,s1,s2實際上引用的是同一個對象。
編譯器在編譯s2一句時,會去掉“+”號,直接把兩個字串連接起來得一個字串(“Hello”)。這種優化工作由Java編譯器自動完成。
當直接使用new關鍵字創建字符串對象時,雖然值一致(都是“Hello”),但仍然是兩個獨立的對象。
二、
解答:給字串變量賦值意味著:兩個變量(s1,s2)現在引用同一個字符串對象“a”!
String對象的內容是只讀的,使用“+”修改s1變量的值,實際上是得到了一個新的字符串對象,其內容為“ab”,它與原先s1所引用的對象”a”無關,所以,s1==s2返回false;
代碼中的“ab”字符串是一個常量,它所引用的字符串與s1所引用的“ab”對象無關。
三、
解答:
equals如何判斷:
?判斷條件:
??? 若當前對象和比較的對象是同一個對象,即return true。也就是Object中的equals方法。
??? 若當前傳入的對象是String類型,則比較兩個字符串的長度,即value.length的長度。
? ? 若長度不相同,則return false
? ? 若長度相同,則按照數組value中的每一位進行比較,不同,則返回false。若每一位都相同,則返回true。
??? 若當前傳入的對象不是String類型,則直接返回false。
四、
解答:
?
轉載于:https://www.cnblogs.com/y862621115/p/7738292.html
總結
- 上一篇: 【前端酷站】分享一个纯 Javascri
- 下一篇: 【洛谷】P1388 算式(dp)