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
具体有待探讨