关于string创建多少个对象问题

该方程式创建了多少个对象实例,不明白怎么计算,有朋友说是创建了7个

方程式是:string s = "a"+"b"+"c"+"d"

在java里面是创建了1个

和string s = "abcd"一样

创建了一个
String s = "a" + "b" + "c" + "d" + "e";
赋值符号右边的"a"、"b"、"c"、"d"、"e"都是常量
对于常量,编译时就直接存储它们的字面值而不是它们的引用
在编译时就直接讲它们连接的结果提取出来变成了"abcde"
该语句在class文件中就相当于String s = "abcde"
然后当JVM执行到这一句的时候, 就在String pool里找
如果没有这个字符串,就会产生一个

String s = "a" + "b" + "c" + "d" ;
执行这一句时会生成一个字符串为:“abcd”

创建了一个,一个对象S;

一个;
个人理解为它相当于字符串合并成一个字符串相当于(String s1= "abc");
如下例子看到它hashCode码值一样的
public class T {
static String s= "a"+"b"+"c";
static String s1= "abc";

public static void main(String[] args){
System.out.println(s.hashCode());
System.out.println(s1.hashCode());
}

}

String s = "a"+"b"+"c"+"d" ;是java下的用法。
在执行过程中:**会有2个**,一个是s ,另一个是 "abcd" 。因为a b c d 均在常量池,会优化为"abcd"。

在C/C++中,语法错误。