课程
/后端开发
/Java
/Java入门第三季
"==" 和“equals()”有什么不同?各自是什么用法?
2016-07-25
源自:Java入门第三季 2-2
正在回答
刚刚找到的: JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地 址,但在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了
可我之前做的在讲object类的笔记里,明明是说equals()是比较是否指向同一块内存地址的,他还说==用于比较引用类型时,也比较地址。感觉好矛盾
要比较string1和string2两个字符串的内容是否相同时,使用equals。
==是比较两个对象的地址是否相同,举个例子:String str1="hello";String str2=new String("hello");要比较这两个字符串是否内容相同,需使用str1.equals(str2),返回结果为true;如果使用str1==str2,返回结果为false;因为两个字符串的地址不相等。
关于equals还有一些可以说明的地方,你可以查下资料,或者再把慕课网的java入门看一遍
==是判断左右两边的内存地址是否相等,equals()是判断左边的赋值是否等于括号里的值。
举报
Java中你必须懂得常用技能,不容错过的精彩,快来加入吧