A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

String字符串a,b的比较用==和a.equals(b)有什么不同?

8 个回复

倒序浏览
如果需要数值和地址都相同则使用==,即两个必须是同一个对象才可以返回true
只需要确定数值相同可以使用equals,比较双方可以不是同一对象
回复 使用道具 举报
个人理解   equals比较的是字符串内容,如果内容相同就是true
回复 使用道具 举报
==比较的是不是同一对象,对于基本数据类型,如果内容相同,且没有出现new,此时==也是true
回复 使用道具 举报
一个是对象,一个是变量,肯定不一样滴。
回复 使用道具 举报
问题说完整点,同学
回复 使用道具 举报
String s= "hello";
String s2 = "hello";
System.out.println(s == s2);//true
System.out.println(s.equals(s2));//false
String s3 = new String("hello");
String s4 = new String("hello");
System.out.println(s3 == s4);//false
System.out.println(s3.equals(s4));//true
一般情况下,==比较的是引用地址值,而equals比较的是复写后的成员内容,s和s2都是直接赋值,就是在常量池中找"hello",s和s2的引用都是常量池中"hello"的地址值,所以s ==s2,其他几种情况就很好理解了。

评分

参与人数 1黑马币 +1 收起 理由
roblonely + 1 很给力!

查看全部评分

回复 使用道具 举报
==一般是比较数字,equals一般用来比较字符串
回复 使用道具 举报
== 是用来比较基础数据类型  和内存地址
equals  java.lang默认也是比较内存地址,需要重写 才能比较String的内容
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马