黑马程序员技术交流社区
标题:
String字符串a,b的比较用==和a.equals(b)有什么不同?
[打印本页]
作者:
gzp123
时间:
2015-5-6 21:35
标题:
String字符串a,b的比较用==和a.equals(b)有什么不同?
String字符串a,b的比较用==和a.equals(b)有什么不同?
作者:
敢舍弃么
时间:
2015-5-6 21:47
如果需要数值和地址都相同则使用==,即两个必须是同一个对象才可以返回true
只需要确定数值相同可以使用equals,比较双方可以不是同一对象
作者:
唐泉银
时间:
2015-5-6 21:50
个人理解 equals比较的是字符串内容,如果内容相同就是true
作者:
唐泉银
时间:
2015-5-6 21:52
==比较的是不是同一对象,对于基本数据类型,如果内容相同,且没有出现new,此时==也是true
作者:
zhang214214
时间:
2015-5-6 21:53
一个是对象,一个是变量,肯定不一样滴。
作者:
熊猫宝宝
时间:
2015-5-6 21:54
问题说完整点,同学
作者:
北京南瓜
时间:
2015-5-6 22:17
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,其他几种情况就很好理解了。
作者:
吾爱SF
时间:
2015-5-6 22:18
==一般是比较数字,equals一般用来比较字符串
作者:
lixunwen
时间:
2015-5-7 15:00
== 是用来比较基础数据类型 和内存地址
equals java.lang默认也是比较内存地址,需要重写 才能比较String的内容
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2