java字符串池入口和堆入口机制
String s1=新字符串(“String”)在java中创建两个对象。一个在字符串池中,一个在堆中。现在,如果我在下面写另一条语句,比如String s2=“String”。它会在字符串池中创建另一个对象还是返回上一个对象的引用?java字符串池入口和堆入口机制,java,string,Java,String,String s1=新字符串(“String”)在java中创建两个对象。一个在字符串池中,一个在堆中。现在,如果我在下面写另一条语句,比如String s2=“String”。它会在字符串池中创建另一个对象还是返回上一个对象的引用?String s2=“String”将从字符串池返回对象 String s1 = new String("s"); String s2 = "s"; // from pool String s3 = "s"; // from pool
String s2=“String”代码>将从字符串池返回对象
String s1 = new String("s");
String s2 = "s"; // from pool
String s3 = "s"; // from pool
System.out.println(s1 == s2); // false
System.out.println(s3 == s2); // true
String s2=“String”代码>将从字符串池返回对象
String s1 = new String("s");
String s2 = "s"; // from pool
String s3 = "s"; // from pool
System.out.println(s1 == s2); // false
System.out.println(s3 == s2); // true
通过调用新字符串(“字符串”)?“字符串”创建的对象是第一个要放入字符串池的对象,新字符串(“字符串”)是第二个对象(不是来自字符串池)。s2将被分配给字符串池中的对象。通过调用新字符串(“字符串”)?“字符串”-创建的对象是将放入字符串池的第一个对象,新字符串(“字符串”)是第二个对象(而不是字符串池)。s2将被分配给字符串池中的对象。