【发布时间】:2019-09-19 12:01:14
【问题描述】:
我需要帮助来确定我将提供的代码创建了多少对象。
我会假设只有一个对象,因为没有使用“new”运算符,但我不确定。
System.out.print("Enter a sentence : ");
mySentence = keyboard.next();
System.out.println("The original is : " + mySentence);
mySentence.toUpperCase();
System.out.println("The same one is : " + mySentence);
mySentence = mySentence.toUpperCase();
System.out.println("The raised is : " + mySentence);
【问题讨论】:
-
至少三个。一个在
keyboard.next(),第二个在第一个 toUpperCase(没有保存参考),然后第三个在第二个toUpperCase()。 JIT 可能会消除第一个 toUpperCase。 -
@ElliottFrisch:是的,我没有计算立即消耗的对象。
-
@ElliottFrisch 4-6 不计算文字。 1 表示
keyboard.next()返回的字符串,3 表示字符串连接。如果mySentence还不是全部大写,那么可能还有 2 个。 -
@MrSpark 为什么您认为字符串字面量以外的任何内容都存储在字符串池中?任何地方都没有
intern()电话。