什麼TM的叫String不可變序列???

1、String是一個final類,代表不可變序列

2、我在想什麼叫不可變

 

比如下列程序

看到輸出不同結果我單純的想這不是變了嗎,那麼String不可變指的是什麼?

   直到了解到下列內容

    String一經初始化後,就不會再改變其內容了。

   對String字符串的操作實際上是對其副本(原始拷貝)的操作

     原來的字符串一點都沒有改變。比如:

     String s ="a"; 創建了一個字符串

      s = s+"b"; 實際上原來的"a"字符串對象已經丟棄了,現在又產生了另一個字符串s+"b"(也就是"ab")。

      如果多次執行這些改變串內容的操作,會導致大量副本字符串對象存留在內存中,降低效率。

     如果這樣的操作放到循環中,會極大影響程序的時間和空間性能,甚至會造成服務器的崩潰。

      我想如何用程序來證明這個呢?即原先創建的對象已經丟棄了,

     於是如上的程序我將   s改爲 147  在新創建一個String對象爲ll值也爲 147,如果s原先的對象沒有丟棄,那麼根據java語法

     s==ll 返回值爲false,如果返回值爲true那麼就證明原先的String對象已經丟棄了。如上。。。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章