1、字符串字面量
Java 字符串文字是使用双引号创建的。例如:
String s="welcome";
每次创建字符串文字时,JVM 首先检查“字符串常量池”。 如果该字符串已存在于池中,则返回对池实例的引用。 如果该字符串在池中不存在,则创建一个新的字符串实例并将其放置在池中。 字符串对象存储在称为字符串常量池的特殊内存区域例如:
String s1="Welcome";
String s2="Welcome";//It doesn't create a new instance
2、通过 new 关键字
String s=new String("Welcome");//creates two objects and one reference variable
在这种情况下,JVM 将在普通(非池)堆内存中创建一个新的字符串对象,并将文字“Welcome”放入常量字符串池中。 变量 s
将引用堆(非池)中的对象。