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