java 字符串问题

洛阳Young
  • 62

问题可能比较痴呆,但是查了半天没查到,望解答-_-||

String A = "aaa";
String B = A + "bbb";

A = "AAA";

System.print(B);

我想让 输出可以是 “AAAbbb”,而不是“aaabbb”

求教

回复
阅读 1.9k
4 个回答
String A = "aaa";

A = "AAA";

public static String B(){
    return A + "bbb";
}

B哪里已经是创建了一个新的对象了,和A没关系

String A = "aaa";这样的字符串是存放在方法区的字符常量池,题主描述的这种情况是发生在引用类型的,可以试试 String A = new String("aaa");
B = A;
A = new String("AAA");
这样把字符串放到堆内存可能会出现题主描述的情况。

布里机
  • 2
新手上路,请多包涵

最早的回答已经提到了,你的A改变后和B没有发生任何关联
String A = "aaa";
String B = A + "bbb";

A = "AAA";
B = A + "bbb";//起码要有这个吧

System.out.print(B);

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏