Java中String類的值在創建后不可修改問題


在java中對於String類型字符串的值一旦創建后就不可更改的問題,對於剛入門的小伙伴難以理解,明明我就把string的值改變了呀,為什么說不能修改呢?

String a ="hello";String b = "java";a = a + b;

a的輸出結果為 hellojava,a的值明明就改變了。

事實上String對象內容的改變是通過內存地址的改變來完成的,而其對象本身內容沒有改變。
如圖:

那么怎么驗證呢?

      public class demo01 {
          public static void main(String[] args)  {
              String a ="hello";
              System.out.println(System.identityHashCode(a));
              String b = "java";
              System.out.println(System.identityHashCode(b));
              a = a + b;
              System.out.println(System.identityHashCode(a));
          }
      }

象的地址並不一定樣,說明a=a+b;后a的地址已經變了,不再指向原來的地址。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM