c#或Java里面,如何比较两个引用对象是否相等?

 我来答 举报
典德元qh
推荐于2016-05-07 · TA获得超过1102个赞
知道小有建树答主
回答量:592
采纳率:100%
帮助的人:555万
展开全部
1.判断两个对象是否是同一个引用对象则用==,"=="比的是地址.因为如果地址相同,则就是同一个对象
2.obj1.equals(Object obj2),用来判断两个对象是否相等.
蓝色小幽灵
2010-04-26 · TA获得超过454个赞
知道小有建树答主
回答量:376
采纳率:0%
帮助的人:272万
展开全部
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();

}
}
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
bdmaladola
2010-04-26 · TA获得超过246个赞
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:123万
展开全部
java中用equal方法判断
如有两个引用对象obj1,obj2
if(obj1.equal(obj2)){
System.out.println("两个引用对象相等");
}
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
trh3037
2010-04-26 · TA获得超过226个赞
知道答主
回答量:83
采纳率:0%
帮助的人:46.6万
展开全部
如果是比较地址是否相等最好用== 如果仅仅是比较值,那么可以用equal(),当然equal也是可以由你自己定义的..如果想必地址也可以,只要你将equal方法修改下..
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
DeathAdo
2010-04-27
知道答主
回答量:31
采纳率:0%
帮助的人:12.7万
展开全部
用==
==是比较地址,对象相等则地址一定相等
用equals方法不一定对,因为equals方法具体到类的定义。

java
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式