| 查看: 1926 | 回复: 6 | ||
[求助]
求大神解释java中String中的eqials方法的源代码 已有2人参与
|
|
Sample Text 求解释java中String中的eqials方法的源代码 |
» 猜你喜欢
假如你的研究生提出不合理要求
已经有4人回复
论文终于录用啦!满足毕业条件了
已经有27人回复
所感
已经有3人回复
要不要辞职读博?
已经有7人回复
不自信的我
已经有11人回复
北核录用
已经有3人回复
实验室接单子
已经有3人回复
磺酰氟产物,毕不了业了!
已经有8人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有10人回复
26申博(荧光探针方向,有机合成)
已经有4人回复
virtualzx
木虫 (著名写手)
- 应助: 263 (大学生)
- 金币: 7161.3
- 红花: 54
- 帖子: 1605
- 在线: 317.6小时
- 虫号: 2069080
- 注册: 2012-10-18
- 性别: GG
- 专业: 理论和计算化学
2楼2013-12-03 01:01:12
caozhengwei
银虫 (小有名气)
- 应助: 7 (幼儿园)
- 金币: 869.1
- 红花: 1
- 帖子: 130
- 在线: 65.8小时
- 虫号: 2451912
- 注册: 2013-05-07
- 性别: GG
- 专业: 计算机软件
3楼2013-12-03 10:10:15
4楼2013-12-06 21:05:16

5楼2013-12-07 10:12:34
【答案】应助回帖
|
int i = offset,是自身对象的起始位置,如果没省略,应该是int i = this.offset。String类中定义有私有的终态变量 /** The offset is the first index of the storage that is used. */ private final int offset; int n = count;获得字符串的长度,count是this.count的缩略 /** The count is the number of characters in the String. */ private final int count; 最后,需要提醒楼主,String类的底层实现是char类型的数组,构造方法中传入char类型数组,作为String的字面量,如String(char[] value),String(char[] value,int offset,int count)等。 /** The value is used for character storage. */ private final char value[]; 现在能看懂这段代码了吧? |

6楼2013-12-24 22:11:32
【答案】应助回帖
|
详细说明看我加的代码注释 1)this代表调用equals方法的实例。 2)equals方法,代表两个意思,一个是完全相同的实例;另一个是内容相同的实例; 3)逐个字符比较就不赘述了。 public boolean equals(Object anObject) {//传入的对象,类似于泛型概念 if (this == anObject) {//这段代码块表示当前实例和anObject是否引用同一地址空间,即完全相同 return true; } if (anObject instanceof String) {//这段代码块,对anObject使用反射成String类型,对this和anObject进行每个单字符对比,若完全相等,则返回true。结合以前代码块,这处理的肯定不是同一地址空间的实例。 String anotherString = (String)anObject; int n = count; if (n == anotherString.count) { char v1[] = value; //这里char[]数组怎么可以直接赋值给他 char v2[] = anotherString.value; // int i = offset; int j = anotherString.offset; while (n-- != 0) { if (v1[i++] != v2[j++]) return false; } return true; } } return false; } |
7楼2014-01-03 10:13:23












回复此楼