.equals Java String Class方法如何工作?

1 java methods class

在java中有一个字符串类方法,如下所示.但我想知道我们如何能够在类型为string的随机变量上调用该方法?

String word = "hello"
word.equals("hello");
Run Code Online (Sandbox Code Playgroud)

输出是真的

San*_*epa 5

equals()方法用于验证两个Java类的实例的状态是否相同.因为equals()来自Object类,所以每个Java类都继承它.但equals()必须重写该方法才能使其正常工作.当然,String覆盖equals().

看一看:

public boolean equals(Object anObject) {
    if (this == anObject) {
        return true;
    }

    if (anObject instanceof String) {
        String aString = (String)anObject;
        if (coder() == aString.coder()) {
          return isLatin1() ? StringLatin1.equals(value, aString.value)
            : StringUTF16.equals(value, aString.value);
        }
    }

    return false;
}
Run Code Online (Sandbox Code Playgroud)

如您所见,String类值的状态必须是equals()而不是对象引用.对象引用是否不同无关紧要; 将比较String的状态

我从这里拿走了它.如果您对字符串池有所了解,那就更好了.所以请参考链接