java中的String对象

时间:2015-05-14 17:22:17

标签: java string object immutability

我们知道String是不可变的,这意味着每次都会创建一个新实例。

我的问题是,如果我写:

System.out.println("Java"+"is"+"programming");

然后在池中创建了多少个对象?

3 个答案:

答案 0 :(得分:0)

您的示例将在字符串池中创建单个字符串对象。

之后,如果你这样做:

String x = "Javaisprogramming";

它仍将指向字符串池中的同一对象。您可以阅读更多here

答案 1 :(得分:-1)

您的示例将创建一个字符串对象。请注意Java documentation

{{3}}

我理解它的方式,Java只在最初创建时向字符串池添加新字符串。所以,

String str1 = "hello";

池中的单个字符串。

所以

String str2 = "Java" + "is" + "cool";

答案 2 :(得分:-1)

您的示例将创建单个'只有字符串

String x = "Javaisprogramming";

因为' +'是java中的字符串连接运算符(它在内部调用append()),因此当您调用System.out.println("Java"+"is"+"programming");时,编译器会从连接中创建一个字符串对象,并使用println()方法发送它。

了解更多关于' +'运营商看到此answer