Java 字符串的不同值?
我是java的新手Java 字符串的不同值?,java,Java,我是java的新手 class Demo{ public static void main(String[] args) { String s1=new String("abc"); String s2=new String("abc"); String s3="xyz"; String s4="xyz"; System.out.println(s1==s2); //line 7 Sys
class Demo{
public static void main(String[] args) {
String s1=new String("abc");
String s2=new String("abc");
String s3="xyz";
String s4="xyz";
System.out.println(s1==s2); //line 7
System.out.println(s3==s4); //line 8
}
}
我只是不明白为什么第7行是假的,第8行是真的
如果有人能给我解释一下,我将不胜感激。当您使用:
String s1=new String("abc");
String s2=new String("abc");
s1和s2是在运行时创建的不同对象
String s3="xyz";
String s4="xyz";
s3和s4在编译时分配,java编译器只存储字符串的一个副本
Related:stackoverflow.com/questions/2486191/what-is-the-java-string-pool-and-how-is-s-different-from-new-strings