String summer = new String("Summer");
String summer2 = "Summer";
System.out.println("Summer");
System.out.println("autumn");
System.out.println("autumn" == "summer");
String autumn = new String("Summer");

我的答案是2 + 0 + 0 + 1 + 1 + 1 = 5。这是正确的吗?

最佳答案

对我来说听起来很合理。

String summer = new String("Summer");

创建了2个实例。第一个是文字"Summer"。第二个原因是因为调用了构造函数。
String summer2 = "Summer";

0个实例:这只是一个参考分配。
System.out.println("Summer");

0个实例。文字"Summer"是从缓存中获取的。
System.out.println("autumn");

1个实例"autumn"
System.out.println("autumn" == "summer");

1个实例"summer"
String autumn = new String("Summer");

1个实例,由构造函数调用引起。文字"Summer"是从缓存中获取的。

底线:2 + 0 + 0 + 1 + 1 + 1 = 5

08-16 18:38