您的位置:首页 > 编程语言 > Java开发

JAVA API 学习疑问记录

2014-09-25 20:21 225 查看
String类

为什么要设计contentEquals?

明明有equals这个方法

网上资料:

String的这2个方法都是自己实现的,
contentEquals就是用来比较内容相同就行了,CharSequence,StringBuffer 都可以进行比较,只要内部char 相同排序相同就算一样。

equels方法是 如果这2个同一个字符串引用那么为true,如果不是同一个引用那么如果二个对象都是String类型则会判断内部char是否相同并且排序一样,如果一样就是true,除了这2中就为false。
String str1 = "Hello";
String str2 = new String("Hello");
这个就因为2个都是字符串,并且char都相同,所以为true


equals(Object o),contentEquals(CharacterSequence cs)
给你看个例子:
public class Test
{
public static void main(String[] args)
{
String str1 = "Hello";
String str2 = new String("Hello");
StringBuilder str3 = new StringBuilder(str1);

System.out.println("str1.equals(str2): " + (str1.equals(str2)));
System.out.println("str1.contentEquals(str2): " + (str1.contentEquals(str2)));
System.out.println("str1.equals(str3): " + (str1.equals(str3)));
System.out.println("str1.contentEquals(str3): " + (str1.contentEquals(str3)));
}
}

str1.equals(str2): true
str1.contentEquals(str2): true
 str1.equals(str3): false
str1.contentEquals(str3): true


具体有待探讨
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: