黑马程序员技术交流社区
标题:
equals和==
[打印本页]
作者:
浅易
时间:
2015-10-26 01:40
标题:
equals和==
equals和==在Object中不是一样的吗?为什么比较字符串要用
作者:
耀阳圣尊
时间:
2015-10-26 10:09
一个是比较地址,一个是比较内容
作者:
黑夜中那颗星
时间:
2015-10-26 12:17
String str1 = "haha"; //“haha”这个是放在字符串常量池里面
String str2 = new String("haha"); //这里new了个对象,这样就在堆内存中了
System.out.println(str1==str2); //==是比较内存地址的,false
——————————————————————————————————
String str1 = "haha"; //这里把"haha"放在了字符串常量池里面了
String str2 = "haha"; //jvm会在常量池里面对比是否有相同的字符串,如果有的话就直接把内存引用到之前的"haha"上面,而不会重新开辟空间,所以他们的内存地址是相同的
System.out.println(str1==str2); //true
——————————————————————————————————
equals方法是比较对象中的内容,不是说字符串比较就一定要用equals方法,只是这个用来比较字符串更合适一点
作者:
ageof
时间:
2015-10-26 16:50
比较字符串 内容用 String类重写的equals方法, 如果 比较字符串的内存地址,用==
作者:
lixp
时间:
2015-10-27 19:17
判断字符串的内容相等的话用equals,如果要比较地址相等的话就要用==
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2