java,String s1="123"; String s2="123";......(s1==s2);//true,这个不是比较地址吗?怎么
答案:1 悬赏:70 手机版
解决时间 2021-04-05 15:48
- 提问者网友:伴风望海
- 2021-04-05 10:37
java,String s1="123"; String s2="123";......(s1==s2);//true,这个不是比较地址吗?怎么会是true?
最佳答案
- 五星知识达人网友:低音帝王
- 2021-04-05 11:50
当你第一次String s1 = "123"的时候,会在常量池里new一个"123", 然后s2 = "123", 指向的还是之前常量池的那一个“123”,所以是true,如果String s2 = new String("123"), s1 == s2就是false了追问class V{
}
public class Test {
public static void main(String[] args) {
V v1=new V();
V v2=new V();
System.out.println(v1.equals(v2));//false,,为什么是false??
System.out.println(v1==v2);//false,为什么是false??
}
}追答String的equals方法是重写了的,只要两个String类型的对象里面值相同,就是true,
所以如果你想要实现你的v1.equals(v2)是true,你需要重写你V的equals方法
}
public class Test {
public static void main(String[] args) {
V v1=new V();
V v2=new V();
System.out.println(v1.equals(v2));//false,,为什么是false??
System.out.println(v1==v2);//false,为什么是false??
}
}追答String的equals方法是重写了的,只要两个String类型的对象里面值相同,就是true,
所以如果你想要实现你的v1.equals(v2)是true,你需要重写你V的equals方法
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯