equals()方法和“==”的区别
2015-08-02 17:44
260 查看
在这两者中,“==”是比较简单的,所以我们先讨论一下“==”
1. “==”的作用就是比较左右两边的值是否相等:
(1)对于Java中的原生数据类型,如int,boolean等,其比较的就是它们字面值是否相等,这个应该是很好理解的;
(2)对于引用类型,如Student student=new Student(),这其中的student就是引用类型,其作用也是比较左右两边的值是否相等,只是时候的值是地址(引用类型的值是地址)。
2. equals()的作用需要分情况来说明:
(1)对于原生数据类型来说,equals()的作用是比较左右两边的值是否相等,跟“==”的作用是一样的。
(2)对于String类型来说,equals()可以判断当前字符串对象和传入的字符串对象是否是同一对象,也可以判断两个字符串对象的内容是否相等。这一点我们可以通过查看String类型中equals()方法的源代码来理解。
(3)对于Object类型的对象来说,equals()方法的作用就是判断当前对象啊和传入的对象是否为同一对象。
(4)对于自己定义的类所生成的对象来说,如果自定义的类没有重写equals()方法,那么它将继承父类或者Object类型的equals()方法。如果重写了的话当然就是自己定义的equals()方法所实现的功能。
1. “==”的作用就是比较左右两边的值是否相等:
(1)对于Java中的原生数据类型,如int,boolean等,其比较的就是它们字面值是否相等,这个应该是很好理解的;
(2)对于引用类型,如Student student=new Student(),这其中的student就是引用类型,其作用也是比较左右两边的值是否相等,只是时候的值是地址(引用类型的值是地址)。
2. equals()的作用需要分情况来说明:
(1)对于原生数据类型来说,equals()的作用是比较左右两边的值是否相等,跟“==”的作用是一样的。
(2)对于String类型来说,equals()可以判断当前字符串对象和传入的字符串对象是否是同一对象,也可以判断两个字符串对象的内容是否相等。这一点我们可以通过查看String类型中equals()方法的源代码来理解。
public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }
(3)对于Object类型的对象来说,equals()方法的作用就是判断当前对象啊和传入的对象是否为同一对象。
(4)对于自己定义的类所生成的对象来说,如果自定义的类没有重写equals()方法,那么它将继承父类或者Object类型的equals()方法。如果重写了的话当然就是自己定义的equals()方法所实现的功能。
相关文章推荐
- 1003:Max Sum
- 暑假第2周周报
- Python对列表中字典元素排序
- Hadoop学习日志(2.安装配置Hadoop)
- 操作符(operator)
- EasyUi 日历组件 datebox 开始时间与结束时间限制高级版
- 模拟-POJ-3087-Shuffle'm up
- CSS 列表属性允许你放置、改变列表项标志,或者将图像作为列表项标志。
- python 基础数据结构-学习笔记之list
- [leedcode 172] Factorial Trailing Zeroes
- [python 笔记2]列表、字符串、字典(list?string?map?)
- bzoj3781: 小B的询问
- Linux下安装FTP服务器及配置
- 跳跃表基础——POJ 3481 Double Queue
- android api实现高斯模糊,且兼容低版本
- django notes 三:Template 的查找
- php-mysql数据库
- Kmeans聚类Python程序
- 使用本地Maven设置
- AD9导入CAD文件做封装外框