問題可能比較癡呆,但是查了半天沒查到,望解答-_-||
String A = "aaa";
String B = A + "bbb";
A = "AAA";
System.print(B);
我想讓 輸出可以是 “AAAbbb”,而不是“aaabbb”
求教
4 回答

萬千封印
TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
String A = "aaa";
A = "AAA";
public static String B(){
return A + "bbb";
}

天涯盡頭無女友
TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊
String A = "aaa";這樣的字符串是存放在方法區(qū)的字符常量池,題主描述的這種情況是發(fā)生在引用類型的,可以試試 String A = new String("aaa");
B = A;
A = new String("AAA");
這樣把字符串放到堆內(nèi)存可能會出現(xiàn)題主描述的情況。

慕蓋茨4494581
TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊
最早的回答已經(jīng)提到了,你的A改變后和B沒有發(fā)生任何關(guān)聯(lián)
String A = "aaa";
String B = A + "bbb";
A = "AAA";
B = A + "bbb";//起碼要有這個(gè)吧
System.out.print(B);
添加回答
舉報(bào)
0/150
提交
取消