使用+运算符java

时间:2016-04-23 10:50:56

标签: java string

使用+而向String添加新子字符串会产生新的String对象。 它是如何工作的,而我想用+初始化String:

String str = "Hello " + "world";

JVM"是否会照顾"它只会产生一个字符串,或者会创建两个字符串,它们将被添加到新的字符串中?我的意思是:

  1. String str = new String("Hello") + new String("world");

  2. String str = "Hello word";

  3. 以下哪些代码属实?

1 个答案:

答案 0 :(得分:4)

Java管理这样的常量字符串:

  

常量表达式是一个表达式,表示......一个不会突然完成的字符串,仅使用以下内容组成:

     
      
  • 原始类型的文字和String类型的文字

  •   
  • 包含表达式为常量表达式的带括号的表达式。

  •   
  • 引用常量变量的简单名称。

  •   
  • 引用常量变量的String.intern形式的合格名称。

  •   
     

String类型的常量表达式始终是" interned"以便使用String.intern方法共享唯一实例。

因为在使字符串为常量后调用-XX:+PrintStringTableStatistics JVM,所以不应将其文字字符串组件添加到池中。

您可以尝试使用202选项来确定程序终止时字符串池的大小。