关于java中equals和==的区别

在学校学习时,老师就告诉我们equals是值比较,==是引用比较,不知道背了多少遍,总感觉工作中用到的地方很少,满脑子都是各种框架,现在看来是真的打脸。今天写代码时,为了做一个逻辑控制,需要比较前台jsp传过来的值和后台自己定义的字符串是否一样,结果写代码的时候,就直接写成了==之间的比较,发现自己写的逻辑代码后台获取到的值和自己定义的字符串确实一样,但是if条件结果就是为false,怎么找也找不出来。

后来坐在那里看着看着,就忽然发现竟然用了==进行比较,当时感觉自己的知识白学了,也可能是最近写前台页面写的有点多,搞混了。。。前台JS判断两个对象平时用的最多的就是==,很少用到===,恒等于。

还是一句话说下,==和equals的区别,equals只关心比较的对象的内容是否相等,他不会关心这两个对象在java中内存中的地址,而==是要去java内存中去找两个对象的地址,只有两个对象引用的同一个对象,才认为相等,否则为false。

例如:前台传过来的值是:FC,后台定义的字符串String name="FC",也是FC."FC"=="FC"结果为false,"FC".equals"FC"则为true。

简单记录一下在平时工作中的脑子短路行为。

猜你喜欢

转载自blog.csdn.net/dghkgjlh/article/details/80976034