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

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