我和我的朋友正在讨论Strings,我们坚持这个:
String str = "ObjectOne"+"ObjectTwo";
Run Code Online (Sandbox Code Playgroud)
他说将创建总共三个对象,我说将创建一个对象.
他在3个对象背后的逻辑是:一个用于"ObjectOne",一个用于"ObjectTwo",第三个是两个String对象的连接版本.
我在一个对象背后的逻辑是在编译时,字符串对象将在字节代码中连接起来:
String str = "ObjectOneObjectTwo";
Run Code Online (Sandbox Code Playgroud)
在运行时,只会以这种方式创建一个对象.这背后的真相是什么?
java ×1