2012-11-02 29 views

回答

1

而且燙髮根和老將軍JVM可以使用非。 - 堆m emory(例如用於直接內存緩衝區)。 非堆內存量受限於-XX:MaxDirectMemorySize選項。如果超過,OutOfMemoryError將被拋出。

1

是有人在你的代碼庫可以把它和Sun ......呃甲骨文)可能會拋出它例如看這個代碼ByteArrayOutputStream:

 /** 
     * Increases the capacity to ensure that it can hold at least the 
     * number of elements specified by the minimum capacity argument. 
     * 
     * @param minCapacity the desired minimum capacity 
     */ 
     private void grow(int minCapacity) { 
      // overflow-conscious code 
      int oldCapacity = buf.length; 
      int newCapacity = oldCapacity << 1; 
      if (newCapacity - minCapacity < 0) 
       newCapacity = minCapacity; 
      if (newCapacity < 0) { 
       if (minCapacity < 0) // overflow 
        throw new OutOfMemoryError(); 
       newCapacity = Integer.MAX_VALUE; 
      } 
      buf = Arrays.copyOf(buf, newCapacity); 
     } 

http://www.docjar.com/html/api/java/io/ByteArrayOutputStream.java.html

+0

謝謝!兩個正確的答案。我只能點擊一個作爲選擇。 –

相關問題