码迷,mamicode.com
首页 > 其他好文 > 详细

String和StringBuffer的equals方法比较

时间:2015-08-16 00:46:45      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:java   string   stringbuffer   

String再熟悉不过了,通常考点在常量池上面。

String和StringBuffer的区别,平时也只留意到一个是final类(String),字符串不可变;一个是普通类(stringbuffer),字符串可变。除此之外还有什么区别呢?下面来看看String和StringBuffer的区别,直接上代码:

String s="abc";
String t=new String("abc");
System.out.println(s==t);
System.out.println(s.equals(t));
System.out.println(s.hashCode()==t.hashCode());

StringBuffer sb=new StringBuffer("abc");
StringBuffer tb=new StringBuffer("abc");
System.out.println(sb==tb);
System.out.println(sb.equals(tb));
System.out.println(sb.hashCode()==tb.hashCode());

输出结果:

false
true
true
false
false
false

对String类来说,它实现了父类的equals方法,比较的是字符串值的大小;而StringBuffer则不一样,它并没有实现equals方法,而是将俩个引用直接比较,所以sb.equals(tb)输出false。hashcode()方法也是一个道理。

特别要说的是,一个类的equals方法和hashcode方法必须一致,例如:x.equals(y)为true;那么x.hashcode()和y.hashcode()就必须相同。

版权声明:本文为博主原创文章,未经博主允许不得转载。

String和StringBuffer的equals方法比较

标签:java   string   stringbuffer   

原文地址:http://blog.csdn.net/lyric_315/article/details/47687549

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!