1

重複の可能性:
!=および==演算子はJavaの整数でどのように機能しますか?

整数i1=1000; 整数i2=1000;

if(i1 == i2)はfalseを返します。ここでこの状態をチェックしていると、正確に何が起こりますか?

条件が真の場合、i1とi2の両方に128未満を割り当てます。ここでオブジェクトはどのように作成されますか、それはすべての値に対してコンマですか、それとも異なりますか?誰かがこのシナリオを明確にすることができますか?

4

1 に答える 1

3

条件が true の場合、i1 と i2 の両方に 128 未満を割り当てた場合

はい、これはその範囲で Java が flyweight パターンを使用し、オブジェクトをキャッシュするために発生します。 これによりInteger、キャッシュされたバージョンがバックアップされ、==機能します。
Integer[-128,127]

于 2012-12-18T11:30:27.170 に答える