JVM的作用,结构

news2025/1/27 12:51:17

 源文件经过编译,生成字节码文件

JVM执行字节码文件(实际上就是将字节码解释成具体平台上的机器指令)

 jdk,jre,jvm三者的关系:

 jvm的组成:

 

(1)类加载器子系统:负责将.class文件加载到JVM中

(2) 执行引擎:即时编译器(将字节码编译成机器码)+垃圾回收器(回收运行过程中不再使用的对象)

(3)本地接口库(Native Interface Library)。本地接口库通过调用本地方法库(Native Method Library)与操作系统交互

(4) 运行时数据区:JVM运行过程中产生的数据存储在这里

接下来分别介绍运行时数据区中的五部分:虚拟机栈,本地方法栈,程序计数器,堆区,方法区

1.虚拟机栈:栈由一个个栈帧组成,而每个栈帧中都拥有:局部变量表、操作数栈、动态链接、方法返回地址。和数据结构上的栈类似,两者都是先进后出的数据结构,只支持出栈和入栈两种操作。

 2.本地方法栈:

和虚拟机栈所发挥的作用非常相似

区别是: 虚拟机栈为虚拟机执行 Java 方法 (也就是字节码)服务,而本地方法栈则为虚拟机使用到的 Native 方法服务。 

在 HotSpot 虚拟机中将本地方法栈和 虚拟机栈合二为一

3.程序计数器  略

以上三个是线程私有,下面两个是线程公有:

4.堆区  

在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存

堆可以细分为新生代和老年代,再细致一点有:Eden、Survivor、Old 等

5.方法区   jdk1.8后方法区变成了元空间

jdk1.7之前,运行时常量池和字符串常量池都在方法区里面,jdk1.7把字符串常量池移到堆中了

           

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/104917.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初学编程,我们应该怎么做,十年老鸟带你入门。

问问自己学编程的真正目的,仅仅是想应付考试考证,还是真心想从事编程方面的工作。仅仅处于功利性而不是真心喜欢,人生苦短,劝不要来浪费时间,找其它真心喜欢的事情。不是社会喜欢的,不是父母喜欢的&#xf…

这6个微信隐藏功能你真的知道吗?学到就是赚到

我们常用的软件——微信,它有着许多隐藏功能,这些功能其实是很好用的,但是一直被我们忽略掉,现在我整理出来了,一起来看看吧。1.登录设备管理 我们平常在其它设备登录,第一次登录需要二次验证才能成功&…

jdk11新特性——新的Epsilon垃圾收集器

目录一、Epsilon垃圾收集器概述二、Epsilon垃圾收集器用法三、Epsilon垃圾收集器代码示例四、使用Epsilon垃圾收集器的原因五、使用Epsilon垃圾收集器的主要用途一、Epsilon垃圾收集器概述 A NoOp Garbage CollectorJDK上对这个特性的描述是: 开发一个处理内存分配但不实现任何…

【Flink】Flink GET operation failed: Server side error 从blobserver下载错误

文章目录 1.概述2.服务器端1.概述 flink 报错 Flink GET operation failed: Server side error 从blobserver下载错误 java.io.IOException: GET operation failed: Server side error: /tmp/hadoop-www/nm-lo

技术栈入门-------Redis

使用redis的准备工作 1、在虚拟机上安装redis(前提是安装了docker容器) 上面使用到的命令 docker pull redis mkdir -p /mydata/redis/confdocker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \ -v /mydata/redis/conf/redis.conf:/et…

Python相关软件下载教程

前言 想要在电脑端运行python程序,需要先下载三个软件:Python解释器,编辑器(使用Visual Studio Code,简称VS Code),python软件包管理系统(简称pip)。 一、MacOS系统安装…

如何使用ArcGIS进行点抽稀(优化版)

概述 有的时候我们手上的数据很密集(比如POI数据),全部加载出来会很挤,在我们只需要部分数据的情况下就需要对其进行抽稀,这里为大家介绍一种比较简单的抽稀方法,希望能对大家有所帮助。 按百分比抽稀 在…

ICG-Hydrazide,用于光热治疗或光动力治疗

ICG能够强烈地吸收光能将其转化为热能或产生单线态氧,可用于光热治疗(PTT)或光动力治疗(PDT)。 英文名称:ICG-Hydrazide 外观:固体/粉末 质量纯度:95% 储存条件:-20℃ 结构式: 凯新生物运输说明: 极低…

Linux学习-87-LNMP一键安装过程

17.16 LNMP安装的前期准备(LNMP一键安装包下载) 手工安装 LNMP 环境,那么同样需要安装大概 10多个源码包(根据版本和功能不同而不同)。不过,现在网上非常流行的 LNMP 环境的搭建过程是采用 LNMP 一键安装包…

25岁,放弃4年所学专业,年薪20W+,我选择了转行。

25岁,没被迫转行, 是主动选择转行,放弃海外20W年薪“稳定”生活,目前已辞职,正在休整准备寻找工作中。希望我的经历可以给大家带来一点启发和借鉴。 首先自我介绍下。90后大叔,土木工程专业,2017年毕业于中南搬砖摇篮…

非零基础自学Golang 第12章 接口与类型 12.6 小结 12.7 知识拓展

非零基础自学Golang 文章目录非零基础自学Golang第12章 接口与类型12.6 小结12.7 知识拓展12.7.1 非侵入式接口第12章 接口与类型 12.6 小结 了解什么是鸭子类型。掌握接口的定义与实现。了解什么是接口嵌入。掌握空接口的常见用法,如空接口的赋值操作。掌握类型断…

C语言知识学习归纳总结(逐梦篇专栏合集)

上一专栏: 项目实战合集 逐梦编程,让中华屹立世界之巅。 简单的事情重复做,重复的事情用心做,用心的事情坚持做; 文章目录前言一、逐梦篇目录合集二、不忘初心"Hello world"总结壁纸(与你同在)前言 不知不觉中&#x…

详解事务:Mysql事务、Spring事务、分布式事务

详解事务:Mysql事务、Spring事务、分布式事务(一)Mysql事务【1】4种隔离级别【2】测试案例(二)Spring事务【1】准备测试代码(1)添加依赖(2)配置文件(3&#x…

《classnames源码》阅读笔记

源码目录总览 参考官方文档中的内容,我们可以知道classnames 有一个主要版本(index)和两个替代版本 (分别是dedupe 和 bind)。在看目录的时候也可以发现 classnames 具有多个对外暴露的入口。 index.js是classnames的主…

Spring MVC【参数的获取与数据返回】

Spring MVC【参数的获取与上传】🍎一. 获取参数🍒1.1 获取单个参数🍒1.2 获取多个参数🍒1.3 获取多个参数🍒1.4 获取URL中参数 (PathVariable)🍎二. 上传文件 (RequestPart)🍒2.1 postman模拟上…

目标检测论文解读复现【NO.23】FS-YOLOv5:轻量化红外目标检测方法

前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文&#xff0…

33个CadQuery程序化建模实例

本文介绍的33个建模示例可以帮助你了解如何使用 CadQuery 构建3D对象。示例是从简单到复杂组织起来的,因此按顺序学习它们是吸收它们的最佳方式。 1、简易矩形板 最简单的例子,一个矩形盒子: result cadquery.Workplane("front&qu…

食品加工企业自营商城小程序开发,帮助企业增加销售渠道,提高销量

随着生活水平的不断提高,人们对于食品质量提出了更高的要求。传统人们购买食品时只能到超市或者市场进行食品采购,需要花费一定的时间和精力,而且经过多层中间商赚取差价的原因性价比也并不高。在移动电商的时代发展下,很多企业商…

『 canvas 动画』为了让老婆彻底理解正弦和余弦,我连夜制作了这个效果

前言 最近在做 canvas 相关的效果时,经常用到三角函数以及正/余弦相关的数字知识,这些知识点都是我们在初中的时候就学过的,但是这么多年基本已经忘的差不多了,刚好最近又学到了一个用 canvas 来实现的正/余弦动画效果&#xff0…

成功转行Python工程师,年薪30W+,经验总结都在这

这是给转行做Python的小白的参考,无论是从零开始,或者是转行的朋友来说,这都是值得一看的,也是可以作为一种借鉴吧。 而且我决定转行IT(互联网)行业,其实理由也很简单,不用动体力&a…