您好,登錄后才能下訂單哦!
這篇文章主要介紹了java如何證明字符串是不可變的,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
如何證明字符串是不可變的
字符串不可變的這個事我曾寫過兩篇文章,寫到最后我都要吐了。但是仍然會有一些同學弄不明白,隔段時間就有人私信我,我就不得不把之前的文章放到收藏夾,問的時候我就把鏈接發給他。
之所以造成這個混亂,有很多因素,比如說,Java 到底是值傳遞還是引用傳遞?字符串常量池是個什么玩意?
這次又不得不談,雖然煩透了,但仍然要證明啊!
public class StringImmutabilityTest { public static void main(String[] args) { String s1 = "沉默王二"; String s2 = s1; System.out.println(s1 == s2); s1 = "沉默王三"; System.out.println(s1 == s2); System.out.println(s2); } }
輸出結果如下所示:
true false 沉默王二
1)String s1 = "沉默王二",Java 在字符串常量池中創建“沉默王二”這串字符的對象,并且把地址引用賦值給 s1
2)String s2 = s1,s2 和 s1 指向了同一個地址引用——常量池中的那個“沉默王二”。
所以,此時 s1 == s2 為 true。
3)s1 = "沉默王三",Java 在字符串常量池中創建“沉默王三”這串字符的對象,并且把地址引用賦值給 s1,但 s2 仍然指向的是“沉默王二”那串字符對象的地址引用。
所以,此時 s1 == s2 為 false,s2 的輸出結果為“沉默王二”就證明了字符串是不可變的。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“java如何證明字符串是不可變的”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。