A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

10黑马币
求大神告知,java中equals和==的区别

最佳答案

查看完整内容

==比较的是对象的地址,也就是是否是同一个对象; equal比较的是对象的值。 Integer r1 = new Integer(900);//定义r1整型对象 Integer r2 = new Integer(900);//定义r2整型对象 System.out.println(r1==r2);//返回false System.out.println(r1.equal(r2));//返回true

5 个回复

倒序浏览
643997890 来自手机 中级黑马 2015-9-22 16:38:58
沙发
==比较的是对象的地址,也就是是否是同一个对象;
equal比较的是对象的值。
Integer r1 = new Integer(900);//定义r1整型对象
Integer r2 = new Integer(900);//定义r2整型对象
System.out.println(r1==r2);//返回false
System.out.println(r1.equal(r2));//返回true
回复 使用道具 举报
说的好详细,合适的发生
回复 使用道具 举报

==比较的是对象的地址,也就是是否是同一个对象,包括数据类型和数值;
equal比较的是对象的值。
Integer r1 = new Integer(900);
Integer r2 = new Integer(“900”);
System.out.println(r1==r2);//返回false,因为对象900和“900”的地址(数据类型)不同,前者是整数型,后者是字符串。
System.out.println(r1.equal(r2));//返回true,因为对象900和“900”的数值相同。
回复 使用道具 举报
所有的类都继承Object, 所以所有的类也都有equals方法,如果没有复写该方法,等同于==,也就是比较的是对象的地址值,但是如果复写了,就完全不同了,例如String这个对象,复写后的功能是比较2个对象的内容是否相同。
回复 使用道具 举报
对于==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;如果作用于引用类型的变量,则比较的是所指向的对象的地址
对于equals方法,注意:equals方法不能作用于基本数据类型的变量,如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马