首页 >Java >java教程 >为什么不用'new”关键字就可以在 Java 中创建字符串?

为什么不用'new”关键字就可以在 Java 中创建字符串?

Barbara Streisand
Barbara Streisand原创
2024-11-16 21:51:03595浏览

Why Can You Create Strings in Java Without the

字符串:不带“new”关键字的对象

Java 字符串确实是对象,但它们是唯一的,因为它们可以在不使用“new”关键字的情况下创建“新”关键字。这就提出了一个问题:为什么?

最初,字符串可能看起来像其他对象一样创建:

Object obj = new Object();

但是,字符串不是以这种方式初始化的:

String str = "Hello World";

字符串文字的实习

理解这一点差异,我们需要深入研究字符串驻留的概念。驻留意味着特定字符串文字(例如“abcd”)的每次出现都引用该字符串的单个实例,而不是每次都创建一个新实例。

在 Java 中,用双引号声明的字符串是被视为文字并自动被保留。这意味着:

String a = "abcd";
String b = "abcd";

将导致:

a == b; // True

使用“new”创建字符串

尽管为字符串启用了实习文字,您仍然可以使用“new”创建字符串关键字:

String a = new String("abcd");
String b = new String("abcd");

但是,在这种情况下,可以有:

a == b; // False

实习的好处

实习字符串文字提供了几个好处:

  • 性能:通过为每个唯一字符串使用单个实例,JVM 分配更少的内存并执行更少的对象创建。
  • 内存节省: 实习可确保每个不同的字符串仅存在一个实例,从而减少内存
  • 相等性检查:对字符串文字使用“==”是有效的,因为它会检查物理相等性,这是通过实习保证的。

注意: 始终建议使用 .equals() 方法来比较字符串,即使是内部字符串,因为它会检查内容平等。

以上是为什么不用'new”关键字就可以在 Java 中创建字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn