String的值不同?

时间:2015-07-04 01:44:43

标签: 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
        System.out.println(s3==s4); //line 8
    }
}

我只是不明白为什么第7行出错并且第8行成真。

如果有人向我解释,我将非常感激。

1 个答案:

答案 0 :(得分:-1)

使用时:

String s1=new String("abc"); 
String s2=new String("abc"); 

s1和s2是指在运行时创建的不同对象。

String s3="xyz";
String s4="xyz";

s3和s4在编译时分配,java编译器只存储该字符串的一个副本。

Java intern