首先做的是比较引用,引用的如果是同一个对象,直接返回true。
做完return就结束了。
如果引用不是同一个地址,就往下走,判断是否是String的一个实例。同样,不是的话直接返回。
是的话,拿字符串的长度做循环的控制变量,做循环。此处的value在源代码里面来看,应该就是String的混:字符数组。
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
相关文章
- Python标准库03 路径与文件 (os.path包, glob包)
- Java IO编程全解(六)——4种I/O的对比与选型
- blfs(systemd版本)学习笔记-wget的安装与配置
- 最简单的网络图片的爬取 --Pyhon网络爬虫与信息获取
- blfs(systemv版本)学习笔记-wget的安装与配置
- mac 中 git 操作账号的保存与删除
- ElasticStack学习(四):ElasticSearch文档使用与操作
- Android成长记(1)-----android环境搭建与adb shell 命令
- POJ 2398 - Toy Storage 点与直线位置关系
- stm32中断优先级管理与外部中断编程