うまくいかない理由を指摘する人もいます。したがって、とにかくゲインが最小限になるという補遺を追加します。
Java で 2 つの文字列を比較する場合、String equals 関数は、最初にそれらが同じオブジェクトへの 2 つの参照であるかどうかをチェックします。その場合は、すぐに true を返します。次に、長さが等しいかどうかをチェックします。そうでない場合は false を返します。そうして初めて、文字ごとの比較が開始されます。
メモリ内のデータを操作している場合、同じオブジェクトの比較は「同じ」ケースをすばやく処理できます。これは、4バイトの整数の比較であると思います。(オブジェクトハンドルの長さが間違っていたら誰か訂正してください。)
等しくない文字列のほとんどは、長さを比較するとすぐに等しくないことがわかるはずです。2 つの名前 (顧客、都市、製品など) を比較する場合、通常、それらの長さは等しくありません。そのため、単純な int 比較でそれらをすばやく破棄できます。
パフォーマンスの最悪のケースは、2 つの長い同一のオブジェクト文字列になることです。次に、オブジェクト ハンドルの比較、偽、チェックの継続を実行する必要があります。長さの比較、真、チェックを続けます。次に、文字列の全長を 1 文字ずつ調べて、最後まで同じであることを確認します。