首页 > 图灵资讯 > java面试题>正文

Strings 与new String有什么区别

2024-02-18 09:37:55

 

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

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

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

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


 
上一篇 静态内部类与非静态内部类有什么区别
下一篇 反射中,Class.forName和ClassLoader的区别

文章素材均来源于网络,如有侵权,请联系管理员删除。