字串pool 引用相加和字面量相加

2021-08-02 05:48:42 字數 414 閱讀 9159

public static final string ab = "ab";

public static final string c = "c";

public static void main(string args)

開始我以為三個都是輸出 true,然而,執行後卻是

false

true

true

第十行所比較的不是同乙個記憶體指向!

找了些資料,原來字串在做「+」操作,

如果是字面量(「abc」這樣,或者static final 修飾的字串)那「+」號兩邊比較的字串都是pool中的字串;

如果「+」兩邊有一邊不是字面量,那比較的字串乙個是pool中的乙個是堆中的,這樣比較記憶體指向的話,顯然是false了

字串,字串字面量和字串變數

1.1.1.0 字串的定義 字串是用雙引號括起來的子覅序列,並以乙個空字元來標識字串的結束。1.1.1.1字串常量 1 字串常量的性質 字串字面量是不可改變的量,它作為字元陣列儲存在記憶體空間中。abcdef 如果一行寫不開可以把第一行以 結尾,第二行頂格寫完。abc def 或者將他們分別用雙引號...

char型指標和字串字面量和字元陣列

1 當乙個char型指標指向乙個字串字面量 也就是常量字串 時,該指標必須由const修飾,否則,系統會給出deprecated 不贊成 的警告。原因是 字串字面量不可改變,當它被乙個非const修飾的指標指向時,存在被指標改變的風險。2 char型指標指向乙個字元陣列時,沒有const限制,因為字...

第七章 字串 字串字面量轉換

本文系閱讀閱讀原章節後總結概括得出。由於需要我進行一定的概括提煉,如有不當之處歡迎讀者斧正。如果你對內容有任何疑問,歡迎共同交流討論。建立字串變數有兩種寫法 string something 和 something 這兩種寫法效果一樣但背後的原理不同。something 是字串字面量,在前面的章節我...