JVM Run-Time Data Areas--reference

前端之家收集整理的这篇文章主要介绍了JVM Run-Time Data Areas--reference前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

http://www.programcreek.com/2013/04/jvm-run-time-data-areas/

This is my note of reading JVM specification. I draw a diagram which helps me understand.

JVM runtime data area

1. Data Areas for Each Individual Thread (not shared)@H_502_9@

Data Areas for each individual thread include program counter register,JVM Stack,and Native Method Stack. They are all created when a new thread is created.

Program Counter Register: it is used to control each execution of each thread.   JVM Stack: It contains frames which is demonstrated in the diagram below.

Native Method Stack: it is used to support native methods,i.e.,non-Java language methods.  

2. Data Areas Shared by All Threads@H_502_9@

All threads share Heap and Method Area.

Heap: it is the area that we most frequently deal with. It stores arrays and objects,created when JVM starts up. Garbage Collection works in this area.

Method Area: it stores run-time constant pool,field and method data,and methods and constructors code。 

Runtime Constant Pool: It is a per-class or per-interface run-time representation of the constant_pool table in a class file. It contains several kinds of constants,ranging from numeric literals known at compile-time to method and field references that must be resolved at run-time.

JVM Stack

Stack contains Frames,and a frame is pushed to the stack when a method is invoked. A frame contains local variable array,Operand Stack,Reference to Constant Pool.

For more information,please go to the offical JVM specification site.

References: 1. 2.

猜你在找的JVM相关文章