`new int [1024]`と `new Integer [1024]`コンストラクトのメモリ消費量の違いは何ですか?
int[] ints = new int[1024]; 
      
        
        
        
      
     for (int i = 0; i < ints.length; i++) ints[i] = i; 
      
        
        
        
      
    
      
      Integer[] ints = new Integer[1024]; 
      
        
        
        
      
     for (int i = 0; i < ints.length; i++) ints[i] = i; 
      
        
        
        
      
    
      
      注:整数型の値の1/8はキャッシュされ、余分なメモリを消費しません。 ブール型およびバイト型のすべての値もキャッシュされます。
| 構造 | JVM 32ビット(バイト単位のサイズ) | JVM 64ビット(バイト単位のサイズ) | 
|---|---|---|
 new BitSet(1024)
      
       |  168 | 168 | 
 new boolean[1024]
      
       |  1040 | 1040 | 
 new Boolean[1024]
      
       |  4112 | 4112 | 
 new ArrayList<Boolean>(1024)
      
       |  4136 | 4136 | 
  1024のnew LinkedList<Boolean>()
      
       | 24624 | 24624 | 
 new byte[1024]
      
       |  1040 | 1040 | 
 new Byte[1024]
      
       |  4112 | 4112 | 
 new ArrayList<Byte>(1024)
      
       |  4136 | 4136 | 
  1024のnew LinkedList<Byte>()
      
       | 24624 | 24624 | 
 new char[1024]
      
       |  2064 | 2064 | 
 new Character[1024]
      
       |  18448 | 18448 | 
 new short[1024]
      
       |  2064 | 2064 | 
 new Short[1024]
      
       |  18448 | 18448 | 
 new ArrayList<Character/Short>(1024)
      
       |  18472 | 18472 | 
  new LinkedList<Character/Short>()
      
      with 1024  | 38960 | 38960 | 
 new int[1024]
      
       |  4112 | 4112 | 
 new Integer[1024]
      
       |  18448 | 18448 | 
 new float[1024]
      
       |  4112 | 4112 | 
 new Float[1024]
      
       |  20496 | 20496 | 
 new ArrayList<Integer/Float>(1024)
      
       |  18472 | 18472 | 
  new LinkedList<Integer/Float>()
      
      with 1024  | 38960 | 38960 | 
 new long[1024]
      
       |  8208 | 8208 | 
 new Long[1024]
      
       |  18448 | 25616 | 
 new double[1024]
      
       |  8208 | 8208 | 
 new Double[1024]
      
       |  20496 | 28688 | 
 new ArrayList<Long/Double>(1024)
      
       |  18472 | 25640 | 
  new LinkedList<Long/Double>()
      
      with 1024  | 38960 | 46128 | 
 new String[1024]
      
       |  52464 | 61456 | 
 new ArrayList<String>(1024)
      
       |  52488 | 61480 | 
  1024のnew LinkedList<String>()
      
       | 72976 | 81968 | 
完全なコードはこちらから入手できます。
Z.Y. おそらく、すべてのJAVA開発者はこれをすべて知っている必要がありますが、誰かが知らない場合は、