這一章節我們來討論一下不變的字串。
為什麼說是不變?
我們先看string 的構造器
public string()
其中裡面的value,我們再看一下:
/** the value is used for character storage. */
private final char value;
value的識別符號是final,因此,字串在編譯器裡面是不可原地修改。
package com.ray.ch11;
public class test
}
輸出:false
在轉換的過程中,其實是把「a」這個字串物件複製乙份,然後再進行轉換。
我們可以點進去touppercase方法裡面,裡面需要注意的有兩句:
system.arraycopy(value, offset, result, 0, firstupper);
和
return new string(0, count+resultoffset, result);
第一句是把傳入的值複製乙份,然後第二句在最後new乙個新的字串出來。
然後,大家可以在string 這個類的源**裡面搜尋一下return new string,你會發現,你常用的那些方法,基本都是返回乙個新的字串。
這一章節就到這裡,謝謝。目錄
從頭認識java 1 5 繼承(2)
接著上一章節,我們來繼續介紹繼承。1.子類呼叫方法時的查詢方法的順序 package com.ray.ch01 public class animal public void sleep package com.ray.ch01 public class bird extends animal pu...
從頭認識java 7 4 實現多重介面
這一章節我們來說一下介面另乙個特性 多重介面。在平常,使用繼承,我們只是繼承某一類,只能夠一種向上轉型,但是在介面的使用方面,可以實現多個介面,然後實現多種的向上轉型。我們先上 package com.ray.ch07 public class test public static void tes...
從頭認識java 8 6 匿名內部類
這一章節我們來討論一下匿名內部類。我們之前已經提到了內部類,如下 package com.ray.ch03 public class test private mytest mytest public static void main string args inte ce mytest 上面的內部...