この記事では、2 つの 文字列が等しいかどうかを判断する際の Java と JavaScript の違いを主に紹介します。これは非常に優れており、必要な方は参考にしてください。JavaScript は一般的に使用されるスクリプト言語です。また、Javascript で 2 つの文字列が等しいかどうかを判断するには、C++ の String クラスを使用して判断するのと同じです。 2 つの文字列が等しいかどうかを判断するには、equals() メソッドまたは CompareTo() メソッドを使用する必要があります。それは、equals() メソッドのパラメーターの型です。パラメータの型は String クラスではなく、Object クラスであることは間違いありません。
いくつかの国内チュートリアルでは String クラスが記述されています (o(╯□╰)o)
ソースコードをご覧ください。 JDK の:
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; }
パラメーターの型が Object クラスであることがわかります。ところで、このコードについて言えば、まず 2 つの参照が同じかどうかを判断します。参照が同じであれば、エンティティは当然です。次に、クラスの変換が含まれます:
サブクラスによって作成されたオブジェクト
を親クラスに割り当てます。これを上向き変換のオブジェクトと呼びます。これに基づいて、親クラスのオブジェクトをサブクラスのオブジェクトに変換することもできます。簡単に言うと、クラス間の変換には一定の条件があり、その判断にinstanceofを使用する必要があります。
各クラスのequals()メソッドはObjectクラスから派生しているため、equals()メソッドのパラメータの型がObjectクラスであることを理解するのは難しくありません。 Java の String クラスの CompareTo()