【发布时间】:2018-11-11 04:20:27
【问题描述】:
我知道这可能非常基本,也可能非常简单,但我无法清楚地理解在这种情况下会发生什么,所以,就这样吧。
在以下代码中:
String str1 = "Hello";
String str2 = "World";
String str3 = new String("HelloWorld");
String str4 = str1 + str2;
我知道 str1 和 str2 将分别在 字符串常量池内部创建一个对象“Hello”和“World”。而对于 str3,在字符串常量池创建了一个新对象,该对象指向内部创建的“HelloWorld”字符串常量池。
我的问题是,如果我连接 2 个或更多字符串(使用 '+' 或 concat() 方法)会发生什么?
会像 String str3 一样在 外部 池中创建一个新对象,还是将 str4 直接指向对象“HelloWorld”内部 字符串常量池
PS : IF 的情况类似于在池外部创建新对象,那么不使用新关键字?
【问题讨论】:
标签: java string string-concatenation