java String注意事項

我們通過幾個例子來看一下String使用要注意的地方

1.String s = "a"+"b"+"c"+"d"+"e"+"f"+"g";這條語句創建了幾個對象?

我們看到這段話的第一反應就是a,b,c,d,e,f,g都是基本數據類型,沒有創建對象,於是"a"+"b"="ab",這樣創建了一個對象

然後"ab"+"c"="abc"這又創建了一個對象,就這樣一個個實現,String s 中s是在堆棧中沒有創建對象,所以一共創建了

6個對象但是,這樣理解到底對不對呢?顯然結果是不對的,因爲在String的內部結構中是通過StringBuilder實現的,

所以,並沒有生成“ab”,"abc"這些對象,而是直接將他們連接的結果提取出來變成“abcdefg”,所以其實上面那句話就相

當於String s = "abcdefg",所以當JVM執行的時候只創建了1個對象

值得注意的是String s = new String("abc");它創建了兩個對象,因爲"abc"本身與經過new創建出來的不是同一個對象。

改一下,如果問題改成下面這樣

String A,B,C,D;

A="a";

B="b";

C="c";

D="d";

A=A+B;

A=A+C+D;

這時創建了幾個對象呢?

A=“a”這裏創建了一個對象一個應用,B,C,D也是如此,然後A=A+B創建了一個,A=A+C+D;創建了一個,所以這裏創建了

6個對象


2.String s = "abcdefg";System.out.println(s.subString(2,5));這句執行結果是什麼呢?

好,我們如果不小心,直接就說從2開始,到5結束,所以是cdef,但是,在String中

subString是前包括後不包括的,也就是說這裏不包括5,所以正確結果應該是cde。




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