用+运算符Java进行字符串初始化

库贝克

使用+将新的子字符串添加到String会创建新的String对象。我想用+初始化String时如何工作:

String str = "Hello " + "world";

JVM是否会“照顾”它并仅创建一个String,或者将创建两个将添加到新String中的String?我是说:

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

  2. String str = "Hello word";

以下哪个代码是正确的?

月桂树

Java管理常量字符串,如下所示:

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

  • 基本类型的文字和字符串类型的文字

  • 用括号括起来的表达式,其包含的表达式是一个常量表达式。

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

  • TypeName . Identifier引用常量变量的形式的合格名称

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

由于String.intern在将String设为常量之后称为,因此不应将其文字String组件添加到池中。

您可以尝试使用该-XX:+PrintStringTableStatistics JVM选项来确定程序终止时字符串池的大小。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用逗号运算符分隔MySQL字符串

来自分类Dev

用逗号运算符分隔MySQL字符串

来自分类Dev

用\ 0初始化字符串数组

来自分类Dev

一元加运算符在指针初始化中有什么用?

来自分类Dev

用三元运算符初始化结构

来自分类Dev

用matlab中的运算符和宏替换字符串

来自分类Dev

用equal(==)运算符比较两个字符串

来自分类Dev

用相同的元素初始化数组:'==`运算符表示数组相同,但是它们的行为不同。为什么?

来自分类Dev

用wvdial拨号时得到“错误的初始化字符串”

来自分类Dev

用小时/分钟/秒字符串初始化日期

来自分类Dev

如何创建用固定字符串初始化的固定大小的文件?

来自分类Dev

用空字符串初始化一个字符串

来自分类Dev

用not运算符`!

来自分类Dev

正则表达式通过用运算符(!,&,((),|)拆分所有字符串的开始和结束位置来获取String数组在Java中

来自分类Dev

用Java分配运算符

来自分类Dev

有没有办法用混合字符和“字符串”初始化数组

来自分类Dev

用Java初始化队列

来自分类Dev

用Java初始化数组的列

来自分类Dev

用Java初始化队列

来自分类Dev

用Java初始化类

来自分类Dev

如何使用Java脚本用换行符格式化XML字符串?

来自分类Dev

用前导零进行字符串化

来自分类Dev

用X数字对象对{}进行字符串化

来自分类Dev

在制表符处用Java拆分字符串

来自分类Dev

用占位符创建字符串

来自分类Dev

用参数初始化

来自分类Dev

用 nullptr 初始化

来自分类Dev

使用Diamond运算符进行Java对象初始化糟糕的Javac编译时性能

来自分类Dev

用Java对单个字符进行子串化