“==”与equals()的区别

可以使用关系相等运算符“==”和对象的equals()方法比较对象,但是在比较对象时,两者是有区别的。

 

 

 

 

关系相等运算符" == " : 

 

 ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。

 

对象的 equals() 方法:

 

 equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。

 

 

   ==比较的是2个对象的地址,而equals比较的是2个对象的内容。


下面给个案例,具体结果我就不贴了,大家就自己运行来实践吧,这样比较印象深刻。如果实在不懂的话可以在我的博客留言,我将会为你解答。

 

public class test {

	
	public static void main(String[] args) {
		
		String x = new String("java");	//创建对象x,其值是java
		String y = new String("java");	//创建对象y,其值是java
		
		System.out.println(x == y);		// 使用关系相等比较符比较对象x和y
		System.out.println(x.equals(y));	// 使用关对象的equals()方法比较对象x和y	
		
		String m = "java";	//创建对象m,其值是java
		String n = "java";	//创建对象n,其值是java
		
		System.out.println(m == n);		// 使用关系相等比较符比较对象m和n
		System.out.println(m.equals(n));	// 使用关对象的equals()方法比较对象m和n	
	}
}
 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值