美文网首页Java
Java运行时数据区

Java运行时数据区

作者: 打铁大师 | 来源:发表于2018-04-20 16:17 被阅读1次

原文戳这里JVM Run-Time Data Areas

下面是我阅读JVM规范的笔记。

JVM-runtime-data-area.jpg

1.单个线程的数据区(不共享)

每个单独的线程的数据区都包括程序计数器(Program Counter Register),虚拟机栈(Java Virtual Machine Stacks),本地方法栈(Native Method Stack)。当一个新线程被创建时,这些数据区会被一同创建。

程序计数器(Program Counter Register)被用来控制每个线程的执行,记录每个线程执行到哪了。

虚拟机栈(Java Virtual Machine Stacks)包含了栈帧,下面会给出视图。

本地方法栈(Native Method Stack)用来支持native方法,非java语言的方法。

2.所有线程共享的数据区

所有线程共享堆和方法区

(Heap)是我们最频繁处理的数据区。它储存了数组和对象。当虚拟机启动时就会创建这块数据区。垃圾回收GC主要在堆中工作。

方法区(Method Area):它存储的是已被虚拟机加载的类信息、常量(从JDK7开始已经移至堆内存中)、静态变量等数据。

运行时常量池(Runtime Constant Pool):每一个类或者接口,在其编译后生成的 .class文件中,有一个部分叫做 常量表(constant_pool_table),JVM将class文件加载以后,就解析常量表的内容到运行时常量池。

JVM-Stack.png

栈包含了若干个栈帧,当一个方法被调用时,一个栈帧就会被推入栈中。一个栈帧包含了局部变量数组(Local Variable Array),操作数栈( Operand Stack),常量池引用(Reference to Constant Pool)三部分。

有关更多信息,请到JVM规范官网。

推荐阅读 JVM入门——运行时数据区

相关文章

  • JVM

    JVM虚拟机运行时数据区(每个区都存储什么信息) JAVA7和JAVA8的运行时数据区JAVA7:虚拟机栈/本地方...

  • Java方法执行过程

    运行时数据区 Java 运行时数据区共分为以下几个部分:程序计数器、Java 虚拟机栈、本地方法栈、Java堆和方...

  • 线程安全之可见性问题

    Java内存模型 VS JVM运行时数据区 首先Java内存模型(JMM)和JVM运行时数据区并不是一个东西,许多...

  • JVM_运行数据区

    JAVA的运行时数据区,老生常谈。 我们常说的JAVA的运行时数据区包括:程序计数器、虚拟机栈、本地方法栈、方法区...

  • 线程在JVM中的运行原理

    。线程在启动运行时,主要是在运行时数据区(JVM的内存模型),而JVM的运行时数据区主要包括堆,方法区,Java栈...

  • 《深入java虚拟机》-内存区域与内存溢出异常

    一、运行时数据区域 1. java内存区模型 注 :1. 绿色方框的数据区由所有线程共享2. 运行时数据区的白色区...

  • 11 jvm 问题

    1,说下jvm 运行时数据区? 不同虚拟机的运行时数据区可能略微有所不同,但都会遵从java 虚拟机规范,java...

  • Java虚拟机以及垃圾回收总结

    Java虚拟机主要由三大部分组成:类加载器、运行时数据区和执行引擎 运行时数据区:由方法区、堆、Java虚拟机栈、...

  • jvm 运行时数据区-01

    jvm 运行时数据区 jvm 运行时数据区 ,将内存划分为5个区域,java 代码在运行时 类里面的 组成部分 分...

  • 【JAVA】深入理解虚拟机之虚拟机类加载机制

    Java程序运行时,数据会分区存放,JavaStack(Java栈)、 heap(堆)、method(方法区)。 ...

网友评论

    本文标题:Java运行时数据区

    本文链接:https://www.haomeiwen.com/subject/dgtzkftx.html