Java 中的字符串字面量是如何以及在哪里存储在内存中的?
字符串用于在 Java 中存储一系列字符,它们被视为对象。java.lang 包的 String 类表示一个字符串。
您可以使用 new 关键字(像任何其他对象一样)或通过为字面量赋值(像任何其他原始数据类型一样)来创建一个字符串。
示例
public class StringDemo {
public static void main(String args[]) {
String stringObject = new String("Hello how are you");
System.out.println(stringObject);
String stringLiteral = "Welcome to Tutorialspoint";
System.out.println(stringLiteral);
}
}输出
Hello how are you Welcome to Tutorialspoint
字符串的存储
字符串存储在堆区域中一个称为字符串常量池的单独内存位置。字符串常量池:这是一个单独的内存块,其中保存所有字符串变量。
当您将字符串存储为
String str1 = "Hello";
直接存储时,JVM 会在字符串常量池中创建一个具有给定值的字符串对象。

并且每当我们尝试创建另一个字符串为
String str2 = "Hello";
JVM 会验证字符串常量池中是否存在具有相同值的任何字符串对象,如果存在,则 JVM 会将现有对象的引用分配给新变量,而不是创建新对象。

而当我们使用 new 关键字存储字符串为
String str = new String("Hello");时,无论字符串常量池的内容如何,都会创建一个具有给定值的新对象。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP