我什么时候应该使用String s = new String(“Hello World”)?

时间:2012-05-31 08:10:48

标签: java string

  

可能重复:
  What is the purpose of the expression “new String(…)” in Java?

我知道{@ 1}}应该避免,因为它会为“Hello World”创造额外的空间,这在大多数情况下是不必要的。

解释为什么String s = new String("Hello World")应该避免的相关问题在这里:

What is the difference between "text" and new String("text")?

但我们什么时候需要使用String s = new String("Hello World")而不是String s = new String("Hello World")?这是我遇到的面试问题。

如果在大多数情况下应该避免String s = "Hello World",为什么Java仍允许这样做?

1 个答案:

答案 0 :(得分:1)

1)String s =“text”; 此语法将为堆中的“text”分配内存。并且每次将此“文本”分配给其他变量时,每次都会返回相同的内存引用。 对于Exp -

   String aa = "text";
   String bb = "text";

   if(aa == bb){
       System.out.println("yes");
   } else {
       System.out.println("No");
   }

将打印 - 是


String s = new String(“text”); 始终在内存中创建新位置并每次返回新引用。 对于Exp -

   String aa = new String ("text");
   String bb = new String ("text");

   if(aa == bb){
       System.out.println("yes");
   } else {
       System.out.println("No");
   }

将打印 - 否