【发布时间】:2014-02-03 11:54:27
【问题描述】:
在声明 String s="Sachin"+" Tendulkar" 中创建了多少个 String 对象; ?这是我的面试题
【问题讨论】:
-
很好的面试问题。
标签: java
在声明 String s="Sachin"+" Tendulkar" 中创建了多少个 String 对象; ?这是我的面试题
【问题讨论】:
标签: java
how many String objects are created in the above declaration?
This is my interview question
"Sachin" -> 字符串字面量
"Tendulkar" -> 字符串字面量
只有一个String s 是由两个文字的串联创建的
【讨论】:
String s=“Sachin”+“ Tendulkar”; 只限一个
【讨论】:
Strings computed by constant expressions are computed at compile time and then
treated as if they were literals.
规格:here
String s="Sachin"+" Tendulkar";
因此,如果您指定只会创建一个字符串文字(在编译时本身创建),即"SachinTendulkar"。因此,字符串池中将只有一个实习字符串。
如果您尝试连接单独的显式文字,那么只有您将在字符串池中拥有单独的实习对象。例如。
String s1 = "Sachin";
String s2 = "Tendulkar";
String s3 = s1 + s2;
在上述情况下,字符串池中将有 3 个不同的实习对象。
【讨论】: