黑马程序员技术交流社区
标题:
关于字符串比较相等的问题。
[打印本页]
作者:
刘源
时间:
2012-8-3 09:10
标题:
关于字符串比较相等的问题。
本帖最后由 刘源 于 2012-8-3 21:09 编辑
“
问题已经解决
”。
部分代码如下:
String s1 ="abc";
String s2 = new String ("abc");
system.out.println(s1==s2); //flase
system.out.println(s1.equals(s2));//ture
这个代码中,equals被复习了比较的是s1和s2中的内容,那==号比较的是什么啊,这个在API里面没有啊,那我怎么知道什么时候用==,什么时候用equals。
那如果没有被复习equals的对象,==还能用吗,这个是默认的吗?
谁能告诉==,和equals到底怎么用啊。
作者:
焦晨光
时间:
2012-8-3 09:15
本帖最后由 焦晨光 于 2012-8-3 09:20 编辑
==比较两个变量本身的值,即两个对象在内存中的地址。
比较的是两个引用变量是否指向同一个对象 及 比较的是指针(地址)
system.out.println(s1==s2); //flase 两个变量的内存地址不一样,
//也就是说它们指向的对象不 一样故 false
equals 比较的是两个变量存储的实体 即 变量的实际值 是否相等
system.out.println(s1.equals(s2));//ture两个变量的所包含的内容是abc,故相等。
用哪个 就看你要比较的是两个变量的引用值还是两个变量的实际内容
作者:
郑枫
时间:
2012-8-3 09:16
强烈建议你 多看几遍 第13天01 String 概括 多看几遍就懂了
作者:
贾昆
时间:
2012-8-3 11:04
一楼说的对 ==比较的是引用地址 equals()比较的是内容 不过equals()还要看变量的类型 string类型以外的 equals()也只能当==用了
作者:
李志广
时间:
2012-8-3 11:21
这是一个比较常见的问题,又是大家都比较疑惑的地方,下面是小总结:
== 和equals()两种比较方法,在使用时要注意
(1)如果比较两个基本类型的数值是否相等,用“==”来比较
(2)如果要比较两个引用变量对象的值是否相等,则要用对象的equals()方法进行比较
(3)如果需要比较两个引用变量是否指向同一对象,则使用“==”来进行比较
(4)对于自定义的类,应该根据情况覆盖其父类或Object类中的equals()方法,否则默认的equals()方法功能与“==”相同。
呵呵,多看一下,毕老师讲解的有关这方面的视频,慢慢体会!!一定会有所收获的!!!!!!!
希望对你有所帮助!!!!{:soso_e100:}
作者:
胡刚涛
时间:
2012-8-3 11:57
==是比较的在内存的地址,而equals只是简单地比较两者的内容是否相同。简单的说“=="只要指向的地址一样结果就是true,而equals其内容相同结果就是true。比如下面的代码:
String st1=new String("abc");
String st2="abc";
String st3=new String("efr");
String st4="abc";
System.out.println(st1==st2);//fasle 地址不同st1在对内存中,是引用对象;st2在栈内存中。
System.out.println(st2.equals(st1));//true 内容相同。
System.out.println(st1.getClass() == st2.getClass());//true 都是String类型的字节码。
System.out.println(st1.getClass() == st3.getClass());//true 都是String类型的字节码。
System.out.println(st1.getClass().equals(st3.getClass()));//true 都是String类型的字节码。
System.out.println(st2 == st4);//true 内容相同。
希望以上的代码能帮助你更好的理解两者之间的区别。
作者:
胡文凡
时间:
2012-8-3 12:04
这个问题太多人问了。==比较的是内存应用地址。
而equals是利用类中的equals方法进行比较的。equals方法怎么写,就怎么比较。
作者:
刘源
时间:
2012-8-3 21:08
李志广 发表于 2012-8-3 11:21
这是一个比较常见的问题,又是大家都比较疑惑的地方,下面是小总结:
== 和equals()两种比较方法,在使用时 ...
很有帮助谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2