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.

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

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

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.

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. JVM Specification – Run-Time Data Areas
2. Java Bytecode Fundamentals

JVM Run-Time Data Areas--reference的更多相关文章

  1. JVM Run-Time Data Areas.

    Ref: JVM Run-Time Data Areas class SimpleThread extends Thread { public SimpleThread(String name) { ...

  2. Java Run-Time Data Areas

    前言 本文主要介绍JVM的运行时数据区 来自Oracle文档 Java Virtual Machine Specification -- Chapter 2. The Structure of the ...

  3. Recover data from reference electrode via EEGLab 用EEGLab恢复参考电极数据

    The data of scanning reference electrode will not show initially. Here is a summary of recovering it ...

  4. Java-JVM 运行时内存结构(Run-Time Data Areas)

    Java 虚拟机定义了在程序执行期间使用的各种运行时数据区域. 其中一些数据区域所有线程共享,在 Java 虚拟机(JVM)启动时创建,仅在 Java 虚拟机退出时销毁. 还有一些数据区域是每个线程的 ...

  5. 深入理解JVM内幕(转)

    转自:http://blog.csdn.net/zhoudaxia/article/details/26454421/ 每个Java开发者都知道Java字节码是执行在JRE((Java Runtime ...

  6. 深入理解JVM内幕:从基本结构到Java 7新特性

    转自:http://www.importnew.com/1486.html 每个Java开发者都知道Java字节码是执行在JRE((Java Runtime Environment Java运行时环境 ...

  7. JVM 内部原理(二)— 基本概念之字节码

    JVM 内部原理(二)- 基本概念之字节码 介绍 版本:Java SE 7 每位使用 Java 的程序员都知道 Java 字节码在 Java 运行时(JRE - Java Runtime Enviro ...

  8. JVM 内部原理(一)— 概述

    JVM 内部原理(一)- 概述 介绍 版本:Java SE 7 图中显示组件将会从两个方面分别解释.第一部分涵盖线程独有的组件,第二部分涵盖独立于线程的组件(即线程共享组件). 目录 线程独享(Thr ...

  9. Understanding JVM Internals---不得不转载呀

    http://www.cubrid.org/blog/dev-platform/understanding-jvm-internals/ http://architects.dzone.com/art ...

随机推荐

  1. 20145218张晓涵 web安全基础实践

    20145218张晓涵 web安全基础实践 1.实验后回答问题 SQL注入攻击原理,如何防御 SQL注入漏洞是指在Web应用对后台数据库查询语句处理存在的安全漏洞.也就是,在输入字符串中嵌入SQL指令 ...

  2. touch和click优先性

    jQuery的touch事件是当用户触摸事件(页面)时触发的. jQuery的click事件是当用户点击元素时触发的. 而事件执行流程是手指点击一个元素,会经过:touchstart --> t ...

  3. 疑难杂症--已停止运行DBCC造成阻塞

    场景数据库因非法断电导致出现分配页上不一致,运行完DBCC CHECKDB后出现以下错误: 表错误: 表 't_pc_id' (ID 277576027).数据行在索引 'last_login_dat ...

  4. UML uml基础知识

    uml基础知识 一.了解: uml是Unified Modeling Language的缩写,意思是统一建模语言或标准建模语言. UML规范用来描述建模的概念有,类(对象的).对象.关联.职责.行为. ...

  5. BF、kmp算法

    第七周 字符串匹配 BF算法,kmp算法 BF:时间复杂度为 O(m*n) int Index_BF(SString S, SString T, int pos) { ; while (i <= ...

  6. 集合的addAll方法--list.addAll(null)会报错--java.lang.NullPointerException

    Exception in thread "main" java.lang.NullPointerException at java.util.ArrayList.addAll(Ar ...

  7. 打造一款1kb大马并且处理D盾以及安全狗拦截与查杀

    在之前sky666提到了关于大马被waf拦的问题,我决定手动去过一下bypass.可是发现怎么也过不去查杀,更别说拦截了.对此无奈,只好花了个通宵去处理一下.顺便一提,理论过所有Waf,并且被杀只需要 ...

  8. Python 中的 10 个常见安全漏洞,以及如何避免(下)

    简评:编写安全代码很困难,当你学习一个编程语言.模块或框架时,你会学习其使用方法. 在考虑安全性时,你需要考虑如何避免被滥用,Python 也不例外,即使在标准库中,也存在用于编写应用的不良实践.然而 ...

  9. iOS hook原理

    OC中的method其实是一个结构体 struct objc_method{ SEL method_name char *method_types IMP method_imp } SEL是方法名,I ...

  10. jupyter notebook 的安装及使用

    推荐使用Python3 版本 安装pip3 版本 打开终端输入,安装jupyter notebook(ipython4之后命名) pip3 install jupyter notebook 启动jup ...