java.lang-Objectクラス
事前に知っておくべきチラシ
->同じアドレスを持つ2つの異なるオブジェクトはありません.
->ただし、2つ以上の参照変数が同じアドレス値を持つことは可能です.
Objectクラス
すべての階級の最高の祖先
equalsメソッド
オブジェクトの参照変数を受信および比較する方法
public boolean equals(Object obj) {
return (this == obj);
}
->参照変数の値を比較することで判断します.
の写真によれば、2つの参照変数のルートが同じかどうかのプロセスが等しい論理であることを確認することができる.
hashCodeメソッド
オブジェクトのhashCodeメソッド
@HotSpotIntrinsicCandidate
public native int hashCode();
クローン方法
新しいインスタンスを作成するために自分自身をコピーする方法
int[] arr = [1, 2, 3, 4, 5];
int[] arrClone = arr.clone();
->コピーしたインスタンスも同じアドレスを持つため、元のインスタンスに影響します.
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
int[] arrClone = arr.clone();
System.out.println(arr); //[I@2d6e8792
System.out.println(arr.clone()); //[I@2812cbfa
System.out.println(arrClone); //[I@2acf57e3
arrClone[1] = 0;
System.out.println(arr[1]); // 2
System.out.println(arrClone[1]); // 0
}
アレイをコピーする理由
->配列もオブジェクトなので、clone()でコピーできます.オブジェクトが継承され、マージ可能およびシリアル可能になっているためです.
->コピーは元のバージョンとは異なります.
Reference
この問題について(java.lang-Objectクラス), 我々は、より多くの情報をここで見つけました https://velog.io/@ji-ha/java.lang-Objectテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol