Direct Memory
Direct memory is an important issue, first of all it is not part of the running data area, nor is it part of the Java Virtual Machine specification. This appears primarily related to NIO, a channel-and buffer-based IO approach, which can use the native library to directly allocate out-of-heap memory, and then operate on a reference to the memory outside the Java heap through a Directbytebuffer object that exists in the Java heap java1.4 , you can improve related performance because you avoid copying data back and forth in the Java heap and the native heap.
That's the point, since this direct memory does not belong to the Java heap management, but also by the total memory limit, if the administrator set the class dynamically extended JAVAJVM, if the direct memory is ignored, the final sum of actual memory is greater than the actual memory, when the JVM to dynamically expand memory, This OutOfMemoryError error will occur.
The effect of the JVM's direct memory