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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李婷婷123 中级黑马   /  2016-3-20 13:03  /  1250 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

集合中的== 和 equals 什么区别呀,好晕呀!

15 个回复

倒序浏览
1、==既能比较基本数据类型,也能比较引用数据类型,equals只能比较引用数据类型。
回复 使用道具 举报
2、==在比较引用数据类型的时候是比较两个引用是不是指向同一个内存地址,equals比较的是两个引用的字面值是不是相同。
回复 使用道具 举报 1 0
另外自定义类可以重写equals方法,让对象按照自己指定的方式来比较大小;但是java中,基本运算符不能重写(以前学c++,连基本运算符都能重载)
回复 使用道具 举报
区别很大,一般来说能用equels比较的,千万别用==就对了。
回复 使用道具 举报
还没有学到 但是每天看看你们的介绍会让我有更深的印象
回复 使用道具 举报
lgdbest 发表于 2016-3-20 18:28
2、==在比较引用数据类型的时候是比较两个引用是不是指向同一个内存地址,equals比较的是两个引用的字面值是 ...

比较引用对象的时候要重写equals方法的对吧。
回复 使用道具 举报
自定义类想要用equals就重写它,java提供的类基本都已经重写equals。
回复 使用道具 举报
李婷婷123 发表于 2016-3-29 09:44
比较引用对象的时候要重写equals方法的对吧。

嗯  是的
回复 使用道具 举报
ipursue 来自手机 中级黑马 2016-3-29 12:16:47
10#
==比较的是地址值和值,equals默认调用==不方法,但只能用于引用数据类型。
回复 使用道具 举报
equals比较内容,==比较地址
回复 使用道具 举报
1,==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,
2,equal用于比较两个对象的值是否相同【不是比地址】
3,【特别注意】Object类中的equals方法和“==”是一样的,没有区别,
  而String类,Integer类等等一些类,是重写了equals方法,才使得equals和“==不同”,
  所以,当自己创建类时,自动继承了Object的equals方法,要想实现不同的等于比较,必须重写equals方法。
  "=="比"equal"运行速度快,因为"=="只是比较值或地址,不比较对象内容.
回复 使用道具 举报
有用!!!
回复 使用道具 举报
一个是所有的比较,一个只是比较里面的值
回复 使用道具 举报
==号如果比较的是基本数据类型,比较的是值。引用类型比较的是地址值。
equals 比较引用数据类型的对象内容
回复 使用道具 举报
1、==既能比较基本数据类型,也能比较引用数据类型,equals只能比较引用数据类型。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马