1. 程式人生 > >String類的equals()的原始碼解析-----對記憶體模型的理解

String類的equals()的原始碼解析-----對記憶體模型的理解

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;
}

 

這個可以這麼解釋:

//重寫toString方法的作用就是打印出具體的資訊
@Override
public String toString() {
    return "User{" +
            "name='" + name + '\'' +
            ", phoneNum='" + phoneNum + '\'' +
            '}';
}

解決了列印為null的問題: