String a = "hello";System.out.println(a);a = " world!!!";System.out.println(a);輸出一個(gè)是 hello 一個(gè)world!!!為什么說(shuō)String 是不可變的。
1 回答

慕勒3428872
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
誰(shuí)說(shuō)string不可變的?應(yīng)該是這句話不完整吧?string類(lèi)型是值類(lèi)型,通過(guò)重新賦值是可以改變值的,具體說(shuō),string定義成a就是在棧中開(kāi)辟了一個(gè)空間,= "hello"將a棧指向了值為hello的堆,當(dāng)你執(zhí)行a = " world!!!";的時(shí)候,a棧重新指向了值為world!!!的堆,釋放了值為hello的堆。就是在棧中的a地址沒(méi)有變,指定的值變了。你說(shuō)的string不變是這個(gè)意思吧
添加回答
舉報(bào)
0/150
提交
取消