我想问在Java中执行以下语句后会创建多少个对象。
String str = "a"+"b"+"c"+"d"
在我看来,只应该创建一个StringBuilder对象。请纠正我并解释其背后的逻辑..提前致谢。
我想问在Java中执行以下语句后会创建多少个对象。
String str = "a"+"b"+"c"+"d"
"abcd"
。String
对象的实例化是惰性的,因此第一次执行该语句时可能只创建一个单独的String
对象。但仅限于第一次。String
对象,具体取决于:"abcd"
文字或编译时常量的任何语句的第一次执行。str
,则该语句可能会被JIT编译器优化掉。str
,甚至在第一次执行之前,所以不会创建任何字符串。此外,如果另一个代码之前使用了字面量 "abcd"
,则该语句不会创建字符串,因为它将重用池中的实例。 - Holger
String
的单个对象。您的代码行中没有StringBuilder
... - deHaar