JVM虚拟机结构

虚拟机结构图

在这里插入图片描述

从图中看出:
JVM虚拟机主要有三大部分组成:
1. 类加载器
2. JVM运行时内存
3. 执行引擎

一、类加载器

类加载器主要用来加载字节码文件(.class)到内存中

二、内存结构

如图:可将内存分为两大部分,一、线程共享内存区域;二、线程私有内存区域

2.1 线程共享内存

共享内存有两部分:方法区、堆内存

  • 方法区:主要用来存储类加载器加载的类的原始数据,如类名、类的继承信息、类上的注解信息等等;
  • 堆内存:凡是创建的新的对象都会放到堆内存中,如new Student()
2.2 内存私有内存

私有内存主要有三块:程序计数器、JVM虚拟机栈、本地方法栈

  • 程序计数器:主要是记录当前线程被CPU执行程序的行数,方便CPU下次切换过来继续执行;
  • JVM虚拟机栈:用来存储局部变量、对象引用信息、方法参数信息等;
  • 本地方法栈:用来存储本地方法的内容,本地方法指JVM需要依托操作系统才能执行的方法,需要通过JVM调用操作系统来完成的一些事件。

三、执行引擎

执行引擎主要分为三部分:解释器、即时解释器(JIT)、垃圾回收器(GC)

  • 解释器:因为JVM目前执行的是.class字节码文件,但是CPU无法识别字节码,CPU只能识别机器码,所以.class需要通过解释器来将字节码文件解释为机器码;
  • 即时解释器:如果所有的.class在运行的时候都需要解释,那么效率将会不高,所有JVM提出热点代码的概念,即时解释器可以发现热点代码(经常执行的代码片段),将其机器码缓存起来,来保证热点代码的即时解释;
  • 垃圾回收器:用来回收对象,释放内存。

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

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

相关文章

【go】IP相关工具类

文章目录 1.判断ipv4 or ipv62.计算cidr格式ip所含IP个数3.计算两个ip区间所含ip个数 1.判断ipv4 or ipv6 // return int 0:错误的ip 4:ipv4 6:ipv6 func CheckIp(ip string) int {if ip "" {return 4}out : net.ParseIP(ip)if out nil {return 0}if strings.Cont…

C1475D Cleaning the Phone 题解

文章目录 C1475D Cleaning the Phone 题解Cleaning the Phone题面翻译题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示算法:贪心代码: C1475D Cleaning the Phone 题解 link Cleaning the Phone 题面翻译 题目大意: 有 n …

【学习iOS高质量开发】——协议与分类

文章目录 一、通过委托与数据源协议进行对象间通信1.委托模式2.要点 二、将类的实现代码分散到便于管理的数个分类之中1.如何实现2.要点 三、总是为第三方类的分类名称加前缀1.为什么总是为第三方类的分类名称加前缀2.要点 三、勿在分类中声明属性1.勿在分类中声明属性的原因2.…

Android进阶(二十九) 走近 IntentFilter

文章目录 一、什么是IntentFilter ?二、IntentFilter 如何过滤隐式意图?2.1 动作测试2.2 类别测试2.3 数据测试 一、什么是IntentFilter ? 如果一个 Intent 请求在一片数据上执行一个动作, Android 如何知道哪个应用程序&#xf…

网页数据的解析提取(XPath的使用----lxml库详解)

在提取网页信息时,最基础的方法是使用正则表达式,但过程比较烦琐且容易出错。对于网页节点来说,可以定义id、class或其他属性,而且节点之间还有层次关系,在网页中可以通过XPath或CSS选择器来定位一个或多个节点。那么&…

Maven管理项目,本地仓库有对应的jar包,但还是报找不到

文章目录 业务场景错误提示分析过程解决办法 业务场景 settings.xml种配置了私服,但是有些依赖私服上没有,通过同事拷贝过来的。但是用maven打包时报红了。 错误提示 Idea Maven错误:was cached in the local repository, resolution will…

RecycleView结合ItemTouchHelper实现拖动排序

最近项目中需要实现对某一类条目进行拖动排序功能,实现技术方案就是利用ItemTouchHelper绑定RecyclerView、ItemTouchHelper.Callback来实现UI更新,并且实现动态控制是否开启拖动功能。其中,ItemTouchHelper是Google在androidx包中添加的&…

int128的实现(基本完成)

虽然有一个声明叫_int128但是这并不是C标准: long long 不够用?详解 __int128 - FReQuenter - 博客园 (cnblogs.com) 网络上去找int128的另类实现方法,发现几乎都是在介绍_int128的 然后我就自己想了个办法,当时还没学C&#xf…

Spring Boot中实现列表数据导出为Excel文件

点击下载《Spring Boot中实现列表数据导出为Excel文件》 1. 前言 本文将详细介绍在Spring Boot框架中如何将列表数据导出为Excel文件。我们将通过Apache POI库来实现这一功能,并解释其背后的原理、提供完整的流程和步骤,以及带有详细注释的代码示例。最…

关于设备连接有人云的使用及modbus rtu协议,服务器端TCP调试设置

有人云调试 调试过程问题1. 关于modbus rtu协议,实质上有三种modbus基本原理modbus 格式2. 关于modbus crc16通信校验3. 关于在ubuntu阿里云服务器端,监听网络数据之调试mNetAssist之前的一个项目,再拿出来回顾下。 调试过程 先 要在有人云,用手机号注册一个服务账号,官网显…

家的情感记忆:如何用壁纸讲述你的墙故事?

1、方小童在线工具集 网址: 方小童 该网站是一款在线工具集合的网站,目前包含PDF文件在线转换、随机生成美女图片、精美壁纸、电子书搜索等功能,喜欢的可以赶紧去试试!

HarmonyOS—使用预览器查看应用/服务效果

DevEco Studio为开发者提供了UI界面预览功能,可以查看应用/服务的UI界面效果,方便开发者随时调整界面UI布局。预览器支持布局代码的实时预览,只需要将开发的源代码进行保存,就可以通过预览器实时查看应用/服务运行效果&#xff0c…

探索分布式强一致性奥秘:Paxos共识算法的精妙之旅

提到分布式算法,就不得不提 Paxos 算法,在过去几十年里,它基本上是分布式共识的代名词,因为当前一批常用的共识算法都是基于它改进的。比如,Fast Paxos 算法、Cheap Paxos、Raft 算法等。 由莱斯利兰伯特(L…

Spring6学习技术|AOP

学习材料 尚硅谷Spring零基础入门到进阶,一套搞定spring6全套视频教程(源码级讲解) AOP AOP(Aspect Oriented Programming)是一种设计思想,是软件设计领域中的面向切面编程,它是面向对象编程的…

AIDL的工作原理与使用示例 跨进程通信 远程方法调用RPC

AIDL的介绍与使用 AIDL(Android Interface Definition Language)是Android中用于定义客户端和服务端之间通信接口的一种接口定义语言。它允许你定义客户端和服务的通信协议,用于在不同的进程间或同一进程的不同组件间进行数据传递。AIDL通过…

深入探讨YUV图像处理:理论原理与OpenCV实践

文章目录 导言YUV模型的原理使用OpenCV处理YUV图像1. 读取YUV图像2. 将YUV图像转换为RGB图像3. 将RGB图像转换为YUV图像 结语 导言 导言: 在图像处理领域,YUV色彩模型因其对亮度和色度的分离而被广泛使用,特别在视频编码和实时通信中发挥了巨…

算法项目(3)—— 从零实现KNN、朴素贝叶斯垃圾邮件分类

本文包含什么? 项目运行的方式项目代码,自己实现KNN算法以及朴素贝叶斯算法.代码介绍运行有问题? csdn上后台随时售后.项目说明 本文主要是自己从0实现KNN算法以及朴素贝叶斯算法.然后使用英文垃圾邮件数据集进行垃圾邮件分类.常见的代码均调用sklearn库来实现,本文自行实现…

AI推介-大语言模型LLMs论文速览(arXiv方向):2024.01.01-2024.01.10

1.Pre-trained Large Language Models for Financial Sentiment Analysis 标题:用于金融情感分析的预训练大型语言模型 author:Wei Luo, Dihong Gong date Time:2024-01-10 paper pdf:http://arxiv.org/pdf/2401.05215v1 摘要: 金融情感分析是指将金融文本内容划分…

从零学习Linux操作系统第二十八部分 shell脚本中的执行流控制

一、什么是执行流、循环执行流 执行流:改变执行顺序,使之更方便操作者 循环执行流:根据脚本是执行流再某一个状态下进行循环执行,进行多次执行后再往下走(for语句) for语句 作用 为循环执行动作 for语句…

opencv判断灰化情况

目的 先说说理论: 在图像处理中,用RGB三个分量(R:Red,G:Green,B:Blue),即红、绿、蓝三原色来表示真彩色,R分量,G分量,B分…