1. 程式人生 > >String s = "a"+"b"+"c"+"d"共建立了多少個物件?

String s = "a"+"b"+"c"+"d"共建立了多少個物件?

		String s1 = "a";
		String s2 = s1+"b";
		String s3 = "a"+"b";
		System.out.println(s2=="ab");
		System.out.println(s3=="ab");

輸出結果為false和true,說明javac編譯可以對字串常量直接相加的表示式進行優化,不必要等到執行期去進行加法運算處理,而是在編譯時去掉加號,直接將其編譯成這些常量字元竄連線後的結果。

String s = "a"+"b"+"c"+"d"相當於定義了一個“abcd”的字串,及上面的程式碼只建立了一個String物件