字符串的==和equals辨析

来源:互联网 发布:PHP怎么跳转页面 编辑:程序博客网 时间:2024/06/08 04:44

首先看 java中equals函数的源码:

public boolean equals(ObjectanObject) {

if (this ==anObject) {

    returntrue;

}

if (anObjectinstanceof String) {

    String anotherString = (String)anObject;

    int n = count;

    if (n ==anotherString.count) {

charv1[] = value;

charv2[] = anotherString.value;

inti = offset;

intj = anotherString.offset;

while (n-- != 0) {

    if (v1[i++] !=v2[j++])

returnfalse;

}

returntrue;

    }

}

return false;

    }

可见,equals首先会判断两个字符串是否“==”,但是“==”只是case1:表示两个字符串的存储地址相等,当我们只是想判断值相等时,也就是case2:两个字符串内所有元素一一对应,char值相同,那么就要用equals,它包含case1和case2.

str1=“123”;

str3=new String (“123”);

——>str1!=str3;but str1.equals(str3)

0 0
原创粉丝点击