Java—"==" 与 equals区别
来源:互联网 发布:阿里云ubuntu中文乱码 编辑:程序博客网 时间:2024/05/29 11:43
概述:
详述:
String str1 = "abc";String str2 = "abc";
String str3 = str1+str2;
String str7 = "abcd";
System.out.println(str1==str2); //返回tureSystem.out.println(str6==str7); //返回ture
我们首先来看一段 Java代码:String str=new String("abc");
String a=new String("foo");
String b=new String("foo");
两条new语句创建了两个对象,然后用a,b这两个变量分别指向了其中一个对象,这是两个不同的对象,他们的首地址是不同的,即a和b中存储的数值是不相同的,所以,表达式a==b即返回false,而这两个对象中内容是相同的,所以,表达式a.equals(b)将返回true。
boolean equals(Object o){
return this==o;
}
这说明,如果一个类没有自己定义equals方法,它默认的equals方法(从Object类继承的)就是使用==操作符,也是比较两个变量指向的对象是否是同一个对象,这时候使用equals和使用==会得到同样的结果,如果比较的是两个独立的对象则总返回false。如果你编写的类希望能够比较该类创建的两个实例对象的内容是否相同,那么你必须覆盖equals方法,由你自己写代码来决定在什么情况即可以认为两个对象的内容是相同的。
- public class Test {
-
public static void main(String[] args) { -
Integer p = -
Integer q = 1 -
Integer i = -
Integer j = -
if(p == q){ -
System.out.println("integer:p -
}else{ -
System.out.println("integer:p -
} -
if(p -
System.out.println("integer: -
}else{ -
System.out.println("integer: -
} -
if(i == j){ -
System.out.println("int:i == j"); -
}else{ -
System.out.println("int:i != j"); //实际结果 -
} -
if(i.equals(j)){ -
System.out.println("integer: -
}else{ -
System.out.println("integer:! -
} -
String a = "abc"; -
String b = "abc"; -
String c = new String("abc"); -
String d = new String("abc"); -
if(a == b){ -
System.out.println("abc对象相等"); //实际结果 -
}else{ -
System.out.println("abc对象不相等"); -
} -
if(a.equals(b)){ -
System.out.println("ab相等"); //实际结果 -
}else{ -
System.out.println("ab不相等"); -
} -
if(c.equals(d)){ -
System.out.println("cd相等"); //实际结果 -
}else{ -
System.out.println("cd不相等"); -
} -
if(c == d){ -
System.out.println("cd对象相等"); -
}else{ -
System.out.println("cd对象不相等"); //实际结果 -
} -
} -
- }
- Java—"==" 与 equals区别
- Java ==与equals()的区别
- java equals与== 的区别
- java == 与 equals的区别
- java equals与== 的区别
- java中“==”与equals区别
- java equals 与 == 的区别
- java中equals与==区别
- java equals() 与‘==’区别
- Java “==”与“equals"的区别
- Java == 与 equals 区别
- Java的==与equals区别
- java-==与equals的区别
- Java“==”与“equals()”的区别
- Java中"equals()"与"=="区别
- Java中equals()与==区别
- Java中equals与==区别
- java ==与equals的区别
- ACM学习感悟——HDU-命运
- 7777777777777777777777
- AOP技术学习之AspectJ
- 00-自测2. 素数对猜想 (20)
- hdoj 2063 过山车
- Java—"==" 与 equals区别
- Deep Learning L教程(矢量化编程)(一)
- poj 1045/3299 数学公式推导(欧姆定律/湿度值)
- Deep Learning L教程(矢量化编程实现)(二)
- 树的直径和并查集判环
- Deep Learning L教程(矢量化编程实现)(三)
- 全排列,回溯
- poj 2136 打印字母的树状图
- HDU 1166 敌兵布阵