public boolean equals(Object anObject) {
/*
* 1. 比较两个对象是否指向同一块内存地址
*/
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
// 将anObject向下转型为String类型
String anotherString = (String)anObject;
int n = value.length;
/*
* 2. 比较两个String类型的字符串长度是否相等
*/
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
/*
* 并不是很理解为什么需要定义n和i两个变量
*/
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
String源码&读书笔记
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- String对象的属性和方法 length属性 length属性返回字符串的长度 charAt() charAt方...
- 责任链模式 介绍 对于链式结构,将每一个节点看做一个对象,每一个对象拥有不同的处理逻辑,将一个请求从链式的首端发出...
- 更好的代码 我总在思考如何让自己写成更优雅的代码,如何写出更易维护,更易读懂的代码,我觉得很幸运,第一份实习工作,...
- 简介 这周入手了《Android源码设计模式解析与实战》,将花一段时间去阅读并做上读书笔记。本书的第一章介绍了面向...