リーリー
2. まず私が明確に知っている部分についてお話します: 4 番目の出力と 8 番目の出力は比較的明確です。これは、Java ヒープに、よく使用される基本データ型リテラルを格納する定数プールがあり、この定数プールには整数 (-128 ~ 127) とブール型 (double 型は不可) を格納できるためです。 「Integer abd1=127」を実行すると、値 127 の Integer オブジェクトがヒープに作成されるだけでなく、対応する定数プールに 127 が格納され、この Integer オブジェクトが定数プールの 127 に関連付けられます。 「Integer abf1=127」を実行すると、オブジェクトの作成に加えて、定数プール内の 127 にも関連付けられるため、2 つを比較すると true が返されます。 128 は異なりますが、定数プールの格納範囲を超えているため、2 つの整数参照 i1 と i2 のみが比較されるため、false が返されます。3. 私の質問は、オブジェクトのメンバー変数に int 型 (非静的、非最終) を格納する方法です。つまり、Text オブジェクト t が作成されたとき、abc1 (これと同様の abc2) はスタックに直接格納されるのか、それともパッケージ化されてヒープに格納されるのか? 1 ~ 3 (または 5 ~ 7) が表示されるのはなぜですか? 戻り値は "真、偽、真」の状況。
int と Integer を比較する場合、Integer は自動的にボックス化されず、int と比較されます。
。2 番目のオブジェクトのインスタンス変数はヒープ上に割り当てられます。
Integer 型は自動的にボックス化されないため、1 と 5 が比較されます。
new Integer(xxx) xxx もスコープ内に作成されるため、2 は false です