2012-05-08 10 views

答えて

13

。プリミティブを対応するオブジェクトタイプに自動的に変換する機能です。これはJava 1.5以降に存在します。

オートボクシングの反対はautounboxingと呼ばれるが、これはオートボクシングと呼ばれるNullPointerExceptionが

+1

+1はNPEに関する警告です。明示的にするには、 'list.add(null); ''( '' short'' list.get(0))。shortValue() 'は、' 'null'を取得し、' 'Short''にキャストします。 'shortValue()'にNPEを投げます。 – yshavit

1

に注意されます。

オブジェクトは自動的に真のShortオブジェクトを作成し、これらのオブジェクトはヒープ上でIntegerオブジェクトと同じ16バイトを占めることに注意してください。ネイティブのshort値のみが2バイトを占有します(ただし、java.util.collectionsに入れることはできません)。多くの状況において

list.put((short) 12345); 
list.put((short) 12345); 

は、実際にもようなオブジェクト、すなわち32バイトを加えたリストオブジェクトによって占有されるメモリを作成します。リストに格納されているポインタは、すでに4〜8バイトを占めています。

大丈夫です。数百万の場合、メモリの管理と使用のためにパフォーマンスに悪影響を与える可能性があります。生のショーツを使用すると、通常、遅くなるか、メモリが足りなくなるまでに10倍もかかることがあります。

+1

私は、通常、重要なパフォーマンスの問題に遭遇するためには、おそらく "1000"以上が必要だと言います – Buhb

関連する問題