ショートステップ、千マイル;ない小川、jianghaiに。
Java言語の基礎
Javaオブジェクト間の割り当て
オブジェクトは、「割り当て」であるとき、割り当ては、「=」、実行され、ハンドルが実際にある場所から別の場所に等価演算子によって再現されます。オブジェクトとして「A = B」の使用は、その後、A及びBは、最終的にそのオブジェクトBをポイントする場合、この手段は、最初点のみでした。この時間のことを彼ら二人は、同じメモリアドレスを引用しました。
クラス数{ 私はint型。 } パブリッククラスTest { パブリック静的無効メイン(文字列[] args){ 数N1 =新しい番号(); 数N2 =新しい番号(); n1.i = 1。 n2.i = 2。 System.out.println( "n1.i:" + n1.i)。 System.out.println( "n2.i:" + n2.i)。 N2 = N1。 System.out.println(n1.equals(N2))。 System.out.println(N1 == N2)。 System.out.println( "n1.i:" + n1.i)。 System.out.println( "n2.i:" + n2.i)。 n1.i = 3。 System.out.println( "n1.i:" + n1.i)。 System.out.println( "n2.i:" + n2.i)。 } }
プログラムの出力:
n1.i:1 n2.i:2 真 真 n1.i:1 n2.i:1 n1.i:3 n2.i:3
同時に、またN2を変更(n1.i = 3)N1を変更するようです!これは、N1とN2の両方が同じハンドルを含んでいるので、それは、ハンドルが実際に失われた割り当てプロセス1の目標値に対応するために指し、同一のオブジェクト(当初位置ハンドルN2内部を指している;それはオブジェクト「ガベージコレクタ」自動)によってクリアされます。
注意:
クラス数{ 私はint型。 } パブリッククラスTest { パブリック静的無効メイン(文字列[] args){ 数N1 =新しい番号(); 番号他=(数)N1。 System.out.println(他の==のN1)。 System.out.println(他の); System.out.println(N1)。 } }
プログラムの出力:
真 Hello.Number@15db9742 Hello.Number@15db9742
ブログの参照:https://blog.csdn.net/qq_26941173/article/details/51006540