String中的equals方法解析 jdk1.7
Posted 菜鸟~风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String中的equals方法解析 jdk1.7相关的知识,希望对你有一定的参考价值。
注 此篇为jdk1.7中的源码解析
equals()方法中的判断分一下步骤
1先判断内存地址是否相同 如果内存地址相同 那么字符串就是相同的 返回true
2 判断当前字符串和参数字是否属于同一类 如果不相等 返回false
3比较字符串长度(也就是char[]数组)是否相等 不相等返回false
4 逐个字符比较 如果不相等 返回false
下面贴上源码
public boolean equals(Object anObject) { if (this == anObject) {// 1先判断内存地址是否相同 如果内存地址相同 那么字符串就是相同的 返回true return true; } if (anObject instanceof String) {//2 先判断当前字符串和参数字是否属于同一类 String anotherString = (String) anObject; int n = value.length; if (n == anotherString.value.length) {//3比较字符串长度(也就是char[]数组)是否相等 不相等返回false char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) //4 逐个字符比较 return false; i++; } return true; } } return false; }
此篇为个人原创 如有雷同 纯属巧合 如有错误 请各位提醒
如若转载 请注明出处
以上是关于String中的equals方法解析 jdk1.7的主要内容,如果未能解决你的问题,请参考以下文章
Java equals 方法与hashcode 方法的深入解析
深度解析java.lang.String类的equal(Object obj)方法
深入解析字符串的比较方法:“==”操作符;String.Equals方法;String.Compare方法;String.CompareOrdinal方法。
Java实战源码解析为什么覆盖equals方法时总要覆盖hashCode方法