一张图弄懂String的equals()方法比较流程!建议收藏!

- 源码
1 //equals方法源码 2 public boolean equals(Object anObject) { 3 //判断是否是相同对象 4 if (this == anObject) { 5 return true; 6 } 7 //判断anObject是否是String类型 8 if (anObject instanceof String) {// 9 String aString = (String)anObject; 10 //判断编码是否相同 11 if (coder() == aString.coder()) {// 12 //比较两个字符串是否完全相等 13 return isLatin1() ? StringLatin1.equals(value, aString.value) 14 : StringUTF16.equals(value, aString.value); 15 } 16 } 17 return false; 18 }
- 示例
1 String stringCompiler = "A"; 2 String stringNew = new String("A"); 3 4 StringBuilder stringBuilder = new StringBuilder("A"); 5 StringBuffer stringBuffer = new StringBuffer("A"); 6 7 //不是相同对象 8 System.out.println(stringCompiler == stringNew); // false 9 //不是相同对象,但都是String类型,编码、字符值都相同 10 System.out.println(stringCompiler.equals(stringNew)); // true 11 //stringBuilder不是String类型 12 System.out.println(stringCompiler.equals(stringBuilder)); // false 13 //stringBuffer不是String类型 14 System.out.println(stringNew.equals(stringBuffer)); // false
本文来自博客园,作者:土味儿,转载请注明原文链接:https://www.cnblogs.com/tuwer/articles/14883368.html
浙公网安备 33010602011771号