3 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
JavaString
是不可變的。當(dāng)您重新分配時(shí)s1
,您將創(chuàng)建一個(gè)現(xiàn)在引用的新String
值s1
。s2
仍然引用原始字符串。

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊
String s2 = s1;
這是一項(xiàng)任務(wù),而不是永恒平等的指定。
該行的意思是,“當(dāng)程序執(zhí)行這一行時(shí),將變量的值設(shè)置為與變量執(zhí)行時(shí)包含的s2
值相同?!?code>s1
以后對(duì)該變量的任何更改都s1
不會(huì)影響s2
. 這項(xiàng)任務(wù)只是暫時(shí)傳遞信息,僅此而已。

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
本質(zhì)上,當(dāng)您執(zhí)行 s1 = s2 時(shí),您并沒(méi)有將這兩個(gè)對(duì)象綁定到一個(gè)對(duì)象中,而是暫時(shí)使它們的值相同(這有點(diǎn)簡(jiǎn)化)。如果您要更改其中一個(gè)的值,則不會(huì)影響另一個(gè)的值。
想象一下有一個(gè) .txt 文件。您可以在其中輸入任何您想輸入的內(nèi)容,然后復(fù)制并粘貼它。然后,您返回原始文件并繼續(xù)輸入。盡管原始文件中的文本已更改,但副本文件中的文本并未更改。這與這里發(fā)生的情況基本相似。
添加回答
舉報(bào)