記事は徹底的整数、新しい整数(差の概念)とint型を理解します

区別の基本的な考え方

1、整数ラッパークラスintで、int型は、基本データ型のJavaの一種であります

2、整数変数は、使用前にインスタンス化しなければならない、とint型の変数を必要としません

3、新しい整数は、実際にオブジェクトへのポインタを生成するときIntegerオブジェクトは、実際には、参照されている;そしてintデータ値が直接格納されています

4、整数デフォルトがnullの場合、デフォルト値は0 intです

V2-cc772d1010a690fffb48bb9bf7c3f3bf_hd.png

整数、新しい整数()とint型の比較

1、二つの新しい整数()変数の比較は常にfalseです

その異なるメモリアドレス2つのオブジェクトの新しい世代のため、

v2-83910a49a292ca5307b9ea4cf458be28_hd.png

2、整数変数とされた新しいInteger()変数の比較は、常にfalseです。

Javaオブジェクトのような整数変数は定数プールを指摘し、ヒープ内の新しいオブジェクトに新しい新しい整数()可変点、メモリ内の2つの異なるアドレス。

V2-a521ea0367cde2fcfc3c20d5e2361643_hd.png

-128〜127の間の2つの変数の間隔は、比較結果が真である場合、2つの変数の値がこの範囲内にない場合図3は、2つの整数の変数の比較は、比較結果が偽です。

v2-78d28fb6a2ce18fe42c6964db6853481_hd.png

分析:

整数I =コンパイル時100は、整数I = Integer.valueOf(100)に翻訳され、タイプ整数のJavaのvalueOfの定義は次のとおり

v2-09936f633e879f8b951b6bc3f2043567_hd.png

-128〜127の数とJavaは、キャッシュされています。

したがって、整数I = 127は、127がキャッシュされるとき、次の書き込み整数j = 127は、キャッシュから直接取得されます場合は、新しいものではないでしょう。

真次いで、限り二つの値が等しくなるように、新たな整数と比較4、INT整数変数()

パッケージや基本データ型がIntegerの比較をint型なので、Javaのintは自動的に解凍され、その後、比較、実際には、2つの比較変数int型になります。

v2-6ae9fd669e04a04fb65777626aeaa5d8_hd.png

例1:

v2-1ad87bb709a3909718fd7227465a7333_hd.png

答えは

v2-6b7825a96c0a7df850570632edafbf38_hd.png

例2:

v2-091452a677e7d93e6962b2cecf2beafd_hd.png

例3:

v2-57ce0a58db7700b426eaabc4221791d7_hd.png

次の出力は偽です。

v2-373e6c0821dcbfc012e7e685ad189e0c_hd.png

解像度:

I01 == I02。5959 i01.intValue()I02 2つの値を比較 - >はtrue。

I01 == I03。59 127 -128の間にあるので、したがって、I01及びI03代入演算子は、同じオブジェクトを返します。同じオブジェクトがchche、真の同じオブジェクトのアドレスから返されます。

I03 == I04。キャッシュ値からI03、I04は、新しい新しいオブジェクトである、2つが同じオブジェクトではありません、それは偽です。

I02 == I04。そして、同様の真。

答えはCです。

例4:

実施例3の唯一の違いは、すべての128の値を変更することです。

v2-242a70f6bccb0252070e7d4ea53ef18a_hd.png

次の出力は偽です。

v2-33bf336c36bcc3737c47cad73d782e80_hd.png

答え

v2-64dc94536ac08695dfc7d6a4d6aae798_hd.png


最後に、
私たちは、ヨーヨーは、物品、支援への感謝を覚えている賞賛のポイントのように、交換を歓迎します!


おすすめ

転載: blog.51cto.com/14442094/2432485