== 与 equals()方法的区别
Posted 舞动键盘的小虾米
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了== 与 equals()方法的区别相关的知识,希望对你有一定的参考价值。
* equals()方法的使用
*
* 1.java.lang.Object类中的equals()方法的定义:
*
* public boolean equals(Object obj) {
return (this == obj);
}
*
* 说明:Object类中equals()比较两个对象的引用地址是否相同。(或:比较两个引用是否指向同一个对象实体)
*
* 2. 像String、Date、File、包装类等重写了Object类中的equals()方法,比较两个对象中的实体内容是否相等。
*
* 3. 对于自定义类来讲,如果没重写Object类中的equals()方法,调用equals()方法时,仍然比较两个对象的引用地址
* 是否相同。
*
* 4. 一般情况下,在开发中一旦调用了自定义类的equals(),通常都是重写以后的equals()方法。
*
* 5.重写equals()的规则:比较两个对象的属性是否都相等。
*
*
* 面试题:== 和 equals() 区别?
*
* ==:使用范围:可以操作基本数据类型 和 引用数据类型
* 如果操作的是基本数据类型:比较两个基本数据类型的变量对应的值是否相等。
* 如果操作的是引用数据类型:比较两个引用的地址是否相同。
*
*
* equals():使用范围:只适用于引用数据类型
* 具体的使用:见上面的1-5
*
*
*
* @author shkstart 邮箱:[email protected]
* @version 创建时间:2017年7月26日 下午2:18:41
*
*/
public class EqualsTest {
public static void main(String[] args) {
String str1 = new String("atguigu");
String str2 = new String("atguigu");
System.out.println(str1 == str2);//false
System.out.println(str1.equals(str2));//true
Date date1 = new Date(12141412L);
Date date2 = new Date(12141412L);
System.out.println(date1.equals(date2));//true
Customer c1 = new Customer("Tom", 12);
Customer c2 = new Customer("Tom", 12);
System.out.println(c1.equals(c2));//false--->true
System.out.println(c1 == c2);//false
int[] arr1 = new int[]{1,2,3};
int[] arr2 = new int[]{1,2,3};
System.out.println(arr1.equals(arr2));
System.out.println(arr1.equals(arr1));
System.out.println("*************************");
// ==
int num1 = 10;
int num2 = 10;
System.out.println(num1 == num2);//true
double d1 = 10.0;
System.out.println(num1 == d1);//true
char c = 10;
System.out.println(num1 == c);//true
char cc = ‘A‘;
int num = 65;
System.out.println(cc == num);//true
// System.out.println(true == num);//编译不通过
// System.out.println("hello" == new java.util.Date()); //编译不通过
}
}
以上是关于== 与 equals()方法的区别的主要内容,如果未能解决你的问题,请参考以下文章