文档章节

jvm虚拟机运行时数据区

Clarence_D
 Clarence_D
发布于 2017/05/08 23:49
字数 647
阅读 23
收藏 0

1、程序计数器:是一块较小的内存空间,他可以看作是当前线程所执行的字节码的行号指示灯。字节码解析器工作就是通过改变这个计数器的值来选取下一条需要执行的字节码指令、分支、循环、跳转、异常处理、线程恢复等基础功能需要依赖这个计数器来完成。每个线程都需要有一个自己的独立计数器,各个线程互不影响,独立存储。

2、虚拟机栈:java方法执行的内存模型->每个方法在执行的同时会创建一个栈帧用于存储局部变量、操作数栈、动态链接、方法出口等信息,每个方法从调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。

3、本地方法栈:本地方法栈与虚拟机所发挥的作用是非常相似的,他们之间的区别不过是虚拟机栈为虚拟机执行java方法(也就是字节码)服务,而本地方法栈则为虚拟机使用到的Native方法服务

4、java堆:java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。在java虚拟机规范中的描述如下:所有的对象实例以及数组都要在堆上分配,但随着JIT编译器的发展与逃逸分析技术逐渐成熟,栈上分配、标量替换优化技术将会导致一些微妙的变化发生,所有的对象都分配在堆上也渐渐变得不是那么绝对了。

5、方法区:与java堆一样,是线程共享内存区域,它用于存储一杯虚拟机加载的类信息、常理、静态变量、即时编译器编译后的代码等数据。虽然java虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却有一个别名叫做Non-Heap(非堆),目的应该是java堆区分开发。

 

以上内容为“深入理解java虚拟机”,初次了解jvm想把目前我认为有帮助的记录下来也分享给大家。还希望大家多多指教。后续会陆续更新jvm虚拟机相关资料

© 著作权归作者所有

Clarence_D
粉丝 9
博文 136
码字总数 107352
作品 0
天津
程序员
私信 提问
JVM(二)Java虚拟机组成详解

导读:详细而深入的总结,是对知识“豁然开朗”之后的“刻骨铭心”,想忘记都难。 Java虚拟机(Java Virtual Machine)下文简称jvm,上一篇我们对jvm有了大体的认识,进入本文之后我们将具体...

王磊的博客
01/14
0
0
经典面试题|讲一讲JVM的组成

JVM(Java 虚拟机)算是面试必问的问题的了,而但凡问 JVM 一定会问的第一个问题就是:讲一讲 JVM 的组成?那本文就注重讲一下 JVM 的组成。 首先来说 JVM 的组成分为,整体组成部分和运行时...

程序猿院长
04/15
0
0
001. 深入JVM学习—Java运行流程

Java运行流程图 2. Java运行时数据区 3. Java虚拟机栈 栈内存是线程私有的,其生命周期和线程相同; 虚拟机栈描述的是Java方法执行的内存模型:执行一个方法时会产生一个栈帧随后将其保存到栈...

影狼
2018/06/22
0
0
Java虚拟机运行时数据区结构

本文部分参考自《Java虚拟机规范(Java SE 7版)》的中译本和周志明的《深入理解Java虚拟机》,另加个人理解。原书对Java虚拟机运行时数据区描述只有6页,同时参考其他网络网资料,个人能力所...

foodon
2014/12/09
0
4
JVM规范系列第2章:Java虚拟机结构

本规范描述的是一种抽象化的虚拟机的行为,而不是任何一种(译者注:包括 Oracle 公司自己的 HotSpot 和 JRockit 虚拟机)被广泛使用的虚拟机实现。 记住:JVM规范是一种高度抽象行为的描述,...

陈树义
2018/12/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

默认指定logback日志位置

平常我们在使用logback作为日志框架的时候,如果我们不指定日志的绝对路径,就会在我们的当前目录(user.dir)下面生成日志文件,平常我们在开发阶段只要制定一个log目录就好了,但是如果在生...

seno
25分钟前
0
0
浅谈 Spark 的多语言支持

作者:郑锴,花名铁杰,阿里巴巴高级技术专家,Apache Hadoop PMC,Apache Kerby 创立者。深耕分布式系统开发和开源大数据多年,先后专注在安全,存储和计算领域。之前在 Intel,目前转战阿里...

阿里云官方博客
32分钟前
0
0
Windows 10 文件覆盖的坑

Windows 10 下,文件覆盖的时候,如果文件名大小写不同,但字母相同时,会有问题。 如下图,新文件是大写 S 开头,旧文件是小写开头,覆盖后,仍然是小写开头。 不过文件内容是覆盖过来了的,...

yeyi771
33分钟前
2
0
浅谈 Spark 的多语言支持

作者:郑锴,花名铁杰,阿里巴巴高级技术专家,Apache Hadoop PMC,Apache Kerby 创立者。深耕分布式系统开发和开源大数据多年,先后专注在安全,存储和计算领域。之前在 Intel,目前转战阿里...

阿里云云栖社区
37分钟前
4
0
Linux运维常见的硬件及系统问题

一、服务器常见故障和现象 1、有关服务器无法启动的主要原因 : ①市电或电源线故障(断电或接触不良) ②电源或电源模组故障 ③内存故障(一般伴有报警声) ④CPU故障(一般也会有报警声) ⑤主板故...

寰宇01
45分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部