黑马程序员技术交流社区

标题: 问题:==与equals的区别 [打印本页]

作者: liufeng2436_01    时间: 2016-4-23 12:42
标题: 问题:==与equals的区别
问题:==与equals的区别

作者: 小K哥    时间: 2016-4-23 18:14
==:可以比较基本类型和引用类型。基本类型比较的是值是否相同,而引用类型比较的是地址值是否相同。
equals:只能比较引用类型。默认情况下,比较的是地址值是否相同,但是我们可以根据自己的需要重写该方法。
作者: xzy645181797    时间: 2016-4-23 20:41
==比较地址值
equals可以重写成比较内容
作者: jiang0409    时间: 2016-4-23 21:03
==可以比较基本数据类型和引用类型,如果操作元相等而返回ture,
而equals()方法:如 public boolean equals(Object obj):当参数obj引用的对象与当前对象为同一个对象时,就返回ture,否则返回false。有时候根据需要,我们会重写该方法
作者: liuqjss    时间: 2016-4-23 21:05
==:可以比较基本类型和引用类型。基本类型比较的是值是否相同,而引用类型比较的是地址值是否相同。
equals:只能比较引用类型。默认情况下,比较的是地址值是否相同,而String类重写了equals()方法,比较的是内容是否相同
String s1=new String("hello")创建了2个对象,一个是方法区的"hello",一个是堆中的new String,s1的地址值指向堆内存中的地址,
String s2="hello"就只在方法区中创建了一个“hello”对象,s2的地址值指向方法区中的地址
但是s1和s2的内容都是"hello"
System.out.println(s1==s2) false;     System.out.println( s1.equals(s2)) true
作者: 忆々疯ラ萧萧    时间: 2016-4-23 22:31
== 比的是地址,equeal一般会重写  比较内容
作者: 菊花爆满山    时间: 2016-4-23 23:48
==比较地址值
equals可以重写成比较内容
作者: 林明辉    时间: 2016-4-24 00:05
大神真多
作者: nc11111    时间: 2016-4-24 00:17
==比较的是地址值,equals是比较内容,
作者: nc11111    时间: 2016-4-24 00:18
==比较的是地址值,equals是比较内容,        String string="aa";          String string1="aa";          String string2=new String("aa");                 System.out.println(string==string1);                 System.out.println(string==string2);                 System.out.println(string.equals(string1));                 System.out.println(string.equals(string2));             true false true true     




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2