Java中String类型比较时使用equals()方法和比较运算符‘==‘详解

这是我的Java学习记录系列文章,记录的是我学习Java的过程中遇到的问题和学到的知识,如果你遇到了类似的问题,希望我的文章能对你有所帮助。

本人水平有限,如有错误,还望指正,谢谢大家!

该系列文章均为原创,如需转载,请注明出处


明确String为引用类型

首先应该明确一点,String类型对象一旦创建就无法改变它的值
无论你使用String直接创建String a="word"
还是使用new创建String a=new String("abc")

String类型作为引用类型的一种,是对被指向的实际值的一种引用,类似于C中的指针

比较运算符"=="

"=="比较的是两个变量是否指向同一个对象,即是否为同一个内存地址

	String s1="aaa";
	String s2=s1;
	System.out.println(s1==s2);
	//第一次为true
	s2=new String("aaa");
	System.out.println(s1==s2);
	//第二次为false

第一次为true是因为s1和s2都指向了同一个对象,内存地址相同,结果为true
第二次s2指向了新的对象,因此内存地址不同,结果为false

String对equals()方法的重写

String类重写了其父类Object类中的equals() 方法。
首先判断两个变量是否指向同一个对象,相同返回true
如果不同再判断两个变量指向的对象的内容是否相同
内容相同返回true,不同返回false

	String s1="aaa";
	String s2=s1;
	System.out.println(s1==s2);//true
	System.out.println(s1.equals(s2));//true
	
	s2=new String("aaa");
	System.out.println(s1==s2);//false
	System.out.println(s1.equals(s2));//true

总结

"=="比较的是两个String类型变量是否指向同一个对象
equals()则判断两个String类型变量是否相等

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值