`

Java 运行时数据区

    博客分类:
  • Java
阅读更多

Java虚拟机在执行程序时定义了多个运行时数据区。一些数据区域在虚拟机启动时被创建,在虚拟机退出时被销毁。另外一些数据区归属每个线程,这些数据区伴随线程的生命周期。

1、程序计数器(PC Register)

Jvm支持多线程同时执行,每个虚拟机线程都有自己的程序计数器。在任何一个点,虚拟机线程运行在代码的单一方法中,即该线程的当前方法。如果该方法不是本地方法(native,程序计数器包含JVM当前执行指令的地址,如果是本地方法,程序计数器的值不被定义。

2、虚拟机栈(JVM Stacks)

每个虚拟机线程有一个私有的虚拟机栈,同线程一起创建,用于存放帧(frame)。类似于C语言的栈:保存本地变量与部分结果以及作为方法调用返回的一部分。

栈的大小可以是固定值也可以是动态扩展,固定值在栈创建时设置。

3、堆(Heap)

堆是被虚拟机线程所共享,内存在该区域为类实例及数组分配空间。堆在虚拟机启动时创建,堆中对象被gc回收;对象永远不会显式地释放。

4、方法区(Method Area)

方法区被虚拟机线程所共享,类似于传统语言被编译代码的存储区,或者类似于操作系统进程的“text”段。存储类结构比如运行常量池、方法数据、方法及构造器代码,包括类中的特殊方法和实例及接口的初始化。

方法区在虚拟机启动时创建,方法区虽然属于堆的一部分,但一般实现不会对它进行回收或压缩。

5、运行时常量池(Run-Time Constant Pool)

运行时常量池是类或接口对类中常量池(constant_pool)的运行描述,从方法区分配,运行时常量池在类或接口创建时被构造。

6、本地方法栈(Native Method Stack)

虚拟机对普通栈的一种实现,可以称为“C Stack”,用于支持native方法,本地方法栈也可以用于一种语言(比如C)java虚拟机指令集编译器的实现。

分享到:
评论

相关推荐

    深入理解Java运行时数据区_动力节点Java学院整理

    深入理解Java运行时数据区_动力节点Java学院整理,动力节点口口相传的Java黄埔军校

    Java运行时数据区划分原理解析

    主要介绍了Java运行时数据区划分原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Java运行时数据区概述详解

    主要介绍了Java运行时数据区概述,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Java虚拟机运行时数据区

    虚拟机定义及功能详细介绍,高端JAVA必备基础。

    第3节: 揭秘JVM运行时数据区-02

    第3节: 揭秘JVM运行时数据区-02第3节: 揭秘JVM运行时数据区-02第3节: 揭秘JVM运行时数据区-02第3节: 揭秘JVM运行时数据区-02第3节: 揭秘JVM运行时数据区-02第3节: 揭秘JVM运行时数据区-02第3节: 揭秘JVM运行...

    03 运行时数据区概述及线程.pptx

    03 JVM 运行时数据区概述及线程的 PPT 重绘。讲述 Java 虚拟机 运行时数据区所处位置,结构划分,以及各个区域与线程的关系。

    JAVA 运行环境安装包

    Java运行环境(Java Runtime Environment,JRE)是一种用于执行Java程序的软件环境。它包含了Java虚拟机(Java Virtual Machine,JVM),以及Java核心类库和运行时所需的其他组件。 JRE的主要作用是提供Java应用...

    Java 读取 excel数据

    实现java读取excel数据,内有测试数据及相应的jar包,运行无问题

    eclipse怎么运行需要从键盘输入数据的Java程序啊?

    eclipse怎么运行需要从键盘输入数据的Java程序

    思考:Java运行时元数据分析

    本着的精神进行Java运行时元数据分析Reflections扫描您的类路径,为元数据建立索引,使您可以在运行时对其进行查询,并可以保存和收集项目中许多模块的信息。 使用反射,您可以查询元数据,例如: 获取某种类型的...

    Java抓取https网页数据

    Java抓取https网页数据,解决peer not authenticated异常。导入eclipse就能运行,带有所用的jar包(commons-httpclient-3.1.jar,commons-logging.jar,httpclient-4.2.5.jar,httpcore-4.2.4.jar)

    JVM参数优化及JVM解析.docx

    1、JVM参数推荐 2、Java运行时数据区 3、JVM内存模型 4、堆的内存划分 5、垃圾回收(GC) 6、JVM参数汇总

    JAVA实现Modbus RTU或Modbus TCPIP数据采集.rar

    2.多线程之间为更方便的实现数据共享采用了共享相同内存地址空间的形式,并且是并发运行,导致多个线程可能会同时访问或修改其他线程正在使用的变量值,导致安全性,同时如果线程之间相互等待对方拥有的锁,会出现...

    数据结构java版

    《Java数据结构和算法》(第2版)介绍了计算机编程中使用的数据结构和算法,对于在计算机应用中如何操作和管理数据以取得最优性能提供了深入浅出的讲解。全书共分为15章,分别讲述了基本概念、数组、简单排序、堆和...

    基于java的DMS数据挖掘

    基于java的dms数据挖掘系统,该系统实对了linux日志文件的读取,匹配并将匹配成功的数据发送至服务器端

    数据流Java并行程序设计模型的设计、实现及运行时优.pdf

    数据流Java并行程序设计模型的设计、实现及运行时优 数据流Java并行程序设计模型是指基于数据流多态语言特征设计的一种Java并行程序设计模型。该模型的设计思想源于传统工作中单个处理器的工作性能提升方法的不足。...

Global site tag (gtag.js) - Google Analytics