
10个回答
展开全部
1.判断两个对象是否是同一个引用对象则用==,"=="比的是地址.因为如果地址相同,则就是同一个对象
2.obj1.equals(Object obj2),用来判断两个对象是否相等.
2.obj1.equals(Object obj2),用来判断两个对象是否相等.
展开全部
public class CompareObject {
public static void fun(){
String str1="我是第一个对象";
String str2="我是第一个对象";
//==比较的是对象的地址,str2在声明之前,已经存在了str1所指向的这个对象
//这里说明一下,str1和str2都是"我是第一个对象"的一个引用,在创建str2时,发现要创建的这个对象已经存在
//那么就不新创建了,而是把str2指向这个对象就可以了,所以str2和str1的地址是相同的,同时他们也指向同一个对象
if(str1==str2){
System.out.println("str1和str2地址相同");
}
if(str1.equals(str2)){
System.out.println("我们指向同一个对象");
}
System.out.println("**********************************");
//现在我们又声明了一个对象,这一次,str3指向了一个新的对象,这个对象和"我是第一个对象"一模一样
//由于是一个新的对象,所以地址和前两个不同
String str3=new String(str1);
System.out.println(str3);
if("我是第一个对象"==str3){
System.out.println("我们的地址相同");//此句不会打印
}
if("我是第一个对象".equals(str3)){
System.out.println("我们是两个对象,但我们是双胞胎");
}
}
public static void main(String args[]){
fun();
}
}
public static void fun(){
String str1="我是第一个对象";
String str2="我是第一个对象";
//==比较的是对象的地址,str2在声明之前,已经存在了str1所指向的这个对象
//这里说明一下,str1和str2都是"我是第一个对象"的一个引用,在创建str2时,发现要创建的这个对象已经存在
//那么就不新创建了,而是把str2指向这个对象就可以了,所以str2和str1的地址是相同的,同时他们也指向同一个对象
if(str1==str2){
System.out.println("str1和str2地址相同");
}
if(str1.equals(str2)){
System.out.println("我们指向同一个对象");
}
System.out.println("**********************************");
//现在我们又声明了一个对象,这一次,str3指向了一个新的对象,这个对象和"我是第一个对象"一模一样
//由于是一个新的对象,所以地址和前两个不同
String str3=new String(str1);
System.out.println(str3);
if("我是第一个对象"==str3){
System.out.println("我们的地址相同");//此句不会打印
}
if("我是第一个对象".equals(str3)){
System.out.println("我们是两个对象,但我们是双胞胎");
}
}
public static void main(String args[]){
fun();
}
}
展开全部
java中用equal方法判断
如有两个引用对象obj1,obj2
if(obj1.equal(obj2)){
System.out.println("两个引用对象相等");
}
如有两个引用对象obj1,obj2
if(obj1.equal(obj2)){
System.out.println("两个引用对象相等");
}
展开全部
如果是比较地址是否相等最好用== 如果仅仅是比较值,那么可以用equal(),当然equal也是可以由你自己定义的..如果想必地址也可以,只要你将equal方法修改下..
展开全部
用==
==是比较地址,对象相等则地址一定相等
用equals方法不一定对,因为equals方法具体到类的定义。
java
==是比较地址,对象相等则地址一定相等
用equals方法不一定对,因为equals方法具体到类的定义。
java
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询