zzh

zzh

Java equals(ジャバイコールズ)

私たちはここで、Java 8 以前の String.equals 関数について主に説明します。
以下はソースコードです:
image
非常にシンプルで、まず 2 つの文字列オブジェクトのアドレスが同じかどうかを判断し、同じ場合は true を返します。次に、Java 8 では char [] 配列を使用して文字列の値を格納するため、対応する char 値を順番に取り出して同じかどうかを判断します。

注意

Java 8 以前のバージョンでは、文字列内部で char 配列を使用して文字データを格納し、追加の int 型フィールドを使用して文字列のオフセットと長さを記録しています。この表現方法は、大量の ASCII 文字を含む文字列ではスペースの浪費を引き起こす可能性があります。なぜなら、各文字はまだ 2 バイトのストレージスペースを占有するからです。
Java 9 では、Compact Strings の概念が導入され、Latin-1 文字セット(つまり、Unicode コード範囲が U+0000 から U+00FF の間にある)のみを含む文字列に対しては、バイト配列を使用してデータを格納し、各文字は 1 バイトしか占有しません。これにより、このタイプの文字列のメモリ使用量を大幅に削減できます。Latin-1 文字セット以外の文字を含む文字列については、引き続き char 配列を使用してデータを格納し、各文字は 2 バイトを占有します。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。