无脚鸟01
2019-01-05 10:55
对equals()不是很理解,为什么不能用==,能解释一下
这么说吧 比如1号(篮球员)和1号(足球员),他们的值是相等的,但对象不同,所以1号(篮球员)==1号(足球员)为float。而题目中要求仅仅是比较内容相同,而内容就是是否为1号(球员)所以用equals,仅仅比较内容是否相同,是否为1号,而不管对象是什么。现阶段还没有学习如何创建对象,所以用==虽然也可以,但不够严谨,还是有漏洞的。
关于Java中equals和==的详解,看完保证你没有任何问题https://zhangjia.tv/526.html
if(sex == "女")
{
System.out.println("进入女子决赛组");
}
这里是可以这样写的,因为String sex="女"这种形式声明这样的一个字符串后,JVM会在常量池中先查找有有没有一个值为"女"的对象,如果有,就会把它赋给当前引用.即原来那个引用和现在这个引用指点向了同一对象,如果没有,则在常量池中新创建一个"女",下一次如果有String sex1 = "女";又会将sex1指向"女"这个对象,即以这形式声明的字符串,只要值相等,任何多个引用都指向同一对象."=="比较的是操作符两端的操作数是否是同一个对象,这里也是可以使用的
如果先吧sex的值赋值给另一个量,然后再去判断这两个是否相等 ,不是也一样么?
说简单点就是==比较的是值(对象的内存地址) equals比较的是是否为同一个对象
你可以理解为 1==1 就是说这两个数字比较 1.equals("1") 这个就是"1"这个东西是否和"1"这个东西一样
==比较的是两个对象的地址
equals比较的是两个对象的内容
Java入门第一季(IDEA工具)升级版
1165574 学习 · 17587 问题
相似问题