为了账号安全,请及时绑定邮箱和手机立即绑定

请解释为什么要加.equals

if(score>80)

{if(sex.equals("男"))//这里为什么加.equals}

正在回答

3 回答

1.根本上讲equals和==没有区别,在Object类中,equals()方法就是先if语句判断是否==,如果不相等再把字符拆成char型逐位比较。如果都相等就是true,否则false。(这是程序上的区别。)

2.==是判断两个字符的地址是否相同(如果你知道基本类型的保存方式就会更明白,简单的说就是同一种基本类型字符在堆中只会保存一个,后来的相同字符都会接到这一个地址上),也就是说,equals先判断两个字符地址是否相同,地址不相同再实际比较字符是否真的不同。(这是宏观上的区别)

注意:但是不少java自带的类中,equals()都重写过,不一定都一样。

最简单的,比较基本类型==和equals()都可以用,但是equals运行慢(没事找事才用这个)。比较非基本类型都用equals()来比较是否相同,不能用==

0 回复 有任何疑惑可以回复我~
#1

慕虎8590642 提问者

谢啦
2016-09-10 回复 有任何疑惑可以回复我~
#2

慕圣2362166

请问什么叫基本类型,什么叫非基本类型?
2016-09-25 回复 有任何疑惑可以回复我~
#3

qq_疾速小蜗牛_0 回复 慕圣2362166

基本类型是int,long,char,等,首字母小写的都是基本类型,String是最典型的非基本类型。
2016-10-02 回复 有任何疑惑可以回复我~
#4

qq_疾速小蜗牛_0 回复 慕圣2362166

String本质上是类,Stirng s = new Stirng("1123")这样的过程实际上是在创建对象。 int i= 0这样的过程不是在创建对象,只是创建了一个变量。 这是从存储方式上区分出来的(看java编程思想):Stirng s(s是对象的引用,而不是对象本身)int i(i变量)都存储在堆栈中(堆栈不懂没关系),new String("123")是在真正为对象创建存储空间,这个对象(没名字)放在堆中(理解为和堆栈不同的存储位置),而0这个常量放在了常量池(另一个存储的地方)。等于号是连接地址的行为
2016-10-02 回复 有任何疑惑可以回复我~
#5

qq_疾速小蜗牛_0 回复 慕圣2362166

Sting s = new Sting("123")才是面向对象。而int i = 1暂时理解为c语言的遗留,不是面向对象的思想。不要为为啥要这么搞费脑筋学的深了就会懂
2016-10-02 回复 有任何疑惑可以回复我~
#6

慕圣2362166 回复 qq_疾速小蜗牛_0

恩,谢谢
2016-10-08 回复 有任何疑惑可以回复我~
查看3条回复

equals 方法被用来检测两个对象是否相等,即两个对象的内容是否相等,区分大小写。

0 回复 有任何疑惑可以回复我~
#1

慕虎8590642 提问者

谢谢哈
2016-09-10 回复 有任何疑惑可以回复我~

equals 方法被用来检测两个对象是否相等,即两个对象的内容是否相等,区分大小写。

0 回复 有任何疑惑可以回复我~
#1

慕虎8590642 提问者

谢谢啦
2016-09-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请解释为什么要加.equals

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号