Skip to content

Strings 与new String有什么区别

Java中字符串可以通过两种方式创建:使用字符串字面量直接赋值给变量使用关键字new创建一个新的String对象。它们之间有以下区别:

**首先,**使用字符串字面量赋值给变量时,Java会使用字符串常量池来管理字符串对象,可以提高性能和节省内存。而使用new String创建的字符串对象则在堆内存中独立分配内存空间,每次调用都会创建一个新的对象,因此内存消耗更大。

**其次,**使用字符串字面量赋值给变量的字符串是不可变的,即不能改变其内容。而使用new String创建的字符串对象是可变的,可以通过调用方法或者使用赋值运算符修改其内容。

**最后,**使用字符串字面量赋值给变量的字符串比较时,如果多个变量引用相同的字符串字面量,则它们实际上引用的是同一个对象,因此比较它们的引用时将返回true。而使用new String创建的字符串对象,即使内容相同,它们也是不同的对象,因此比较它们的引用时将返回false。

更新: 2023-09-05 19:54:59
原文: https://www.yuque.com/tulingzhouyu/db22bv/ncc6hkatlu47mu90