在 Java 中 String s1 = "Hello" 和 String s1= new String("Hello") 有什么区别?
当你直接以
String str1 = "Hello";
存储一个字符串时,JVM 会在存储在称为字符串常量池的一个独立内存块中创建具有给定值的一个字符串对象。

并且无论何时我们尝试通过
String str2 = "Hello";
创建另一个字符串时,JVM 都会验证字符串常量池中是否已存在具有相同值的字符串对象,如果是,则不会创建一个新的对象,而是将现有对象的引用赋给新变量。
而当我们使用
String str = new String("Hello");new 关键字存储字符串时,无论字符串常量池的内容如何,都会创建一个具有给定值的新对象。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 程序设计
C++
C#
MongoDB
MySQL
JavaScript
PHP