将在String s =“Sachin”+“Tendulkar”中创建多少个String对象;

时间:2014-02-03 11:54:28

标签: java

在声明String s =“Sachin”+“Tendulkar”中创建了多少个String对象; ?这是我的面试问题

3 个答案:

答案 0 :(得分:1)

how many String objects are created in the above declaration? 
This is my interview question
  • “Sachin” - >字符串文字

  • “Tendulkar” - >字符串文字

只有一个String s是通过连接两个文字

创建的

答案 1 :(得分:1)

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池中只有一个interned String。

如果您尝试连接单独的显式文字,那么只有您在字符串池中有单独的实例对象。例如

String s1 = "Sachin";
String s2 = "Tendulkar";
String s3 = s1 + s2;

在上面的例子中,你将在字符串池中有3个不同的实体对象。

答案 2 :(得分:1)

String s=“Sachin”+“ Tendulkar”;只有一个