字符串在内存中存储位置

初学Java,向大神请教:请问string a = "a" + "b";在内存中是如何运行的 ?

凡是字符串的常量都被处理为常量了,存储在常量池中的。你可以用java -p反编译看下。
初学Java的话,建议还是先熟悉语法,你问的这属于JVM底层的知识了,属于Java进阶篇了。真的有兴趣的话,可以看JVM技术揭秘之类的书。

都是存储在常量池中,
底层是字符数组
当两个字符串相加时,就是字符数组的拼接,扩展长度,逐个复制数值

楼上正解,你应该去看看JVM的工作原理,这样每次想问题思路很清晰

首先字符串常量存储在常量池中,当两个字符串相加时,得到结果如果常量池如果有就会把这个索引返回去,没有重新回创建一样的字符串,再把索引返回去

存储在常量池中,先创建了"a" 和 "b"两个字符串对象,然后拼接成一个新的"ab"赋给String变量a

a是一个对象,b也是一个对象啊,为啥觉得只有一个对象呢