Java字符串比较问

如题:

public class T{
public static void main(String[] agrs) {
String s1 = "test";
String s2 = "test";

     System.out.println(s1 == s2);

    T1 t1 = new T1();

    T1 t2 = new T2();

   System.out.println(t1.t() == t2.t());

}

}

class T1(){
String t1(){
return "test";
}
}

class T1(){
String t1(){
retrun "test";
}
}

输出的结果是: false true

第二结果为什么是true。


慕森卡
浏览 492回答 3
3回答

犯罪嫌疑人X

这个问题你需要从String创建的两种方法来看1.String s1 = new String("test");2.String s1 = "test";1.jvm会马上创建一个String对象,然后将该对象的引用返回给用户.2.jvm首先会在对象池中是否存放有该String对象,如果有,则返回已有的String对象给用户然后你用的都是第二种 所以==是一定会相等的,因为都是同一个对象这是我的一些理解,希望对你有帮助

杨__羊羊

字符串常量比较 没有涉及到对象比较 所以比较的是值
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java