Memory
The memory system of the Java virtual machine manages the following kinds of memory:
1. Heap
The Java virtual machine has a heap that is the runtime data area from which memory for
all class instances and arrays are allocated. It is created at the Java virtual machine
start-up. Heap memory for objects is reclaimed by an automatic memory management system
which is known as a garbage collector.
The heap may be of a fixed size or may be expanded and shrunk. The memory for the heap
does not need to be contiguous.
2. Non-Heap Memory
The Java virtual machine manages memory other than the heap (referred as non-heap
memory).
The Java virtual machine has a method area that is shared among all threads. The method
area belongs to non-heap memory. It stores per-class structures such as a runtime constant
pool, field and method data, and the code for methods and constructors. It is created at
the Java virtual machine start-up.
The method area is logically part of the heap but a Java virtual machine implementation
may choose not to either garbage collect or compact it. Similar to the heap, the method
area may be of a fixed size or may be expanded and shrunk. The memory for the method area
does not need to be contiguous.
In addition to the method area, a Java virtual machine implementation may require memory
for internal processing or optimization which also belongs to non-heap memory. For
example, the JIT compiler requires memory for storing the native machine code translated
from the Java virtual machine code for high performance.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3970423#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...