Java基础(2-equals与运算符==)
== 运算符
- 作用于基本数据类型时,是比较两个数值是否相等
- 作用于引用数据类型时,是比较两个对象的内存地址是否相同,即判断它们是否为同一个对象
equals()方法
作用:
- 没有重写时,Object 默认以 == 来实现,即比较两个对象的内存地址是否相同
- 进行重写后,一般会按照对象的内容来进行比较,若两个对象内容相同则认为对象相等,否则认为对象不等
注意:
- equals 不能用于比较基本数据类型的变量;
- 如果没有对 equals 方法进行重写,则比较的是引用类型的变量所指向的对象的地址
java.lang.Object: equals
1 | public boolean equals(Object obj) { |
java.lang.String: equals
1 | public boolean equals(Object anObject) { |
java.util.Arrays: equals
1 | public static boolean equals(int[] a, int[] b) { |
java.util.Object: equals
1 | public static boolean equals(Object a, Object b) { |
java.util.Date: equals
1 | public boolean equals(Object obj) { |
总结
特性 | == 比较运算符 |
equals() 方法 |
---|---|---|
比较内容 | 比较对象的引用(内存地址) | 比较对象的内容(由类重写方法决定) |
适用类型 | 基本数据类型、对象引用 | 对象(通常需要重写 equals 方法) |
默认行为 | 对象比较内存地址,基本类型比较值 | 默认比较对象引用;大多数类重写此方法 |
典型用法 | 用于比较基本数据类型和检查对象是否是同一实例 | 用于比较对象内容(如字符串、集合等) |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 爱编程的小生!
评论