JVM-Java虚拟机-一文读懂-小白秒懂,老鸟进阶,必考面经

news2024/11/15 11:09:42

目录

JVM定义

Java Virtual Machine组成结构

各部分详解

 0、类加载器

1、栈是运行的单位,堆是存储的单位

2、栈中存放各个栈帧

3、方法区——多线程共享区域


JVM定义

  1. 运行Java程序的平台
  2. 内存结构、 垃圾回收、 类加载、 性能调优、 JVM 自身优化技术、 执行引擎、 类文件结构、 监控工具等。

下面我们详细聊聊JVM的内存结构(JMM)


Java Virtual Machine组成结构

  • 虚拟机栈:JVM 运行过程中存储当前线程运行方法所需的数据, 指令、 返回地址
  • 本地方法栈:Java程序自动调用底层C/C++函数库
  • 程序计数器:当前线程执行的字节码的行号指示器
  • 堆:存放我们申请的对象,也就是实例化对象,数组等
  • 方法区:存放虚拟机加载的类相关信息,包括类信息,静态域(静态变量和静态方法),常量池(const val修饰的变量)、字符串常量池、编译后代码等

各部分详解

 0、类加载器

JVM要执行文件,需要把编译后的.class文件装入类加载器

1、栈是运行的单位,堆是存储的单位

下图表示,程序计数器指向的代码mian函数执行后

main()内部生成的实例化对象A和对象B保存在

中存入在指向A,B堆内存的指针

2、栈中存放各个栈帧

栈帧:在一个线程里,每当调用一个方法就会创建一个栈帧,并入栈,当方法执行完以后进行出栈

栈帧包括:局部变量表、操作数栈、动态链接、返回地址

  • 局部变量表:存放基本数据类型的变量或者对象的堆内存地址
  • 操作数栈:存储方法运行时执行引擎需要计算的数据
  • 动态链接:符号引用
  • 返回地址:方法执行完,将程序计数器中地址返回,方便后续栈帧执行

3、方法区——多线程共享区域

  • 常量
  • 静态属性,方法
  • 类信息
  • 字符串

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

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

相关文章

【Web前端】vue3整合eslint约束代码格式

一、整合eslint 整合eslint的两种方式: 在已有项目中整合eslint:# 安装eslint及其vue插件即可 npm i -D eslint eslint-plugin-vue创建项目时整合eslint: 提示 是否引入ESLint用于代码质量检测 时选择 是# 创建vue3项目 npx create-vue # 下…

sqlserver同一数据库还原实例冲突可以用[文件和文件组]来备份解决

1.将数据库恢复模式改为完整 2.备份 在数据库右键--任务--备份 选择文件和文件组 选择位置备份 3.还原 在数据库上右键--还原文件和文件组 或者还原时修改实例名称(没试过)

2024年8月14日(haproxy)

一、haproxy简介 官网https://www.haproxy.com/ 自由及开放源代码软件 HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负我均衡,以及基TCP和HTTP的应用程序代理。 HAProxy特别适用于那些负载特大的veb站点,这些站点通常又需要会活保或七层处理。HAProxy运…

【Qt】QWidget的geometry属性

geometry,意思是“几何”。可以将geometry视为是四个属性的统称。 x:横坐标 y:纵坐标 width:宽度 height:高度 API说明 geometry() 获取到控件的位置和尺⼨. 返回结果是⼀个 QRect, 包含了 x, y, width, height. 其中…

jar包扫描不到,idea如何通过Project Structure设置

目录 一、进入Project Structure二、添加你的项目进来三、手动添加依赖 很多时候jar包文件已经存在,但是无法使用,需要通过Project Structure设置 一、进入Project Structure 选择Modules->点击 二、添加你的项目进来 一直next,最后点…

论文阅读笔记:ST-MetaNet-2

目录 预备知识 定义1:城市交通 定义2:Geo-graph属性 问题1 方法 RNN 元学习器 元图注意力网络 元循环神经网络 预备知识 在本节中,我们介绍定义和问题陈述。为简洁起见,我们在表1中提供了一个注释表。 假设有个位置&…

Java - API

API全称"Application Programming Interface",指应用程序编程接口 API(JDK17.0)链接如下 : Overview (Java SE 17 & JDK 17) (oracle.com)https://docs.oracle.com/en/java/javase/17/docs/api/中文版: Java17中…

C++内存泄露检测-Windows平台VLD

一、安装Visual Leak Detector 下载地址:https://kinddragon.github.io/vld/ 安装过程就一路next即可,如果自定义安装目录的话,需要记住安装的目录,默认目录 C:\Program Files (x86)\Visual Leak Detector,这个目录下…

[独家原创]基于(牛顿拉夫逊)NRBO-TCN多变量回归预测(多输入单输出) Matlab代码

[独家原创]基于(牛顿拉夫逊)NRBO-TCN多变量回归预测(多输入单输出) Matlab代码 NRBO优化的超参数为:卷积核个数、正则化系数、初始化学习率 1.程序已经调试好,无需更改代码替换数据集即可运行!!!数据格式为excel&…

色轮在数据可视化中的应用

在数据可视化中,色彩的运用不仅仅是为了美观,更是为了传达信息、区分数据和提升图表的易读性。本文探讨色轮及其色彩公式的应用,帮助大家更好地运用色彩来提升数据可视化的效果。 1、色轮的基础概念 色轮是一个用于表示颜色之间关系的图形工…

Linux自动构建工具——make/makefile

目录 一、make/makefile是什么? 二、深入了解 1.基本命令 提示:以下是本篇文章正文内容,下面案例可供参考 一、make/makefile是什么? 在Linux中make是一条指令,makefile是文件。make的核心功能就是读取一个或者多个…

解决问题:Arcgis10.8“数据“-“导出至CAD“时就卡死了

问题现象:我们在使用Arcgis10.8软件,执行 “数据导出至CAD”操作时,会出现卡死的情况,步骤如下图所示: 解决方案:在菜单栏依次选择“地理处理”-“地理处理选项”,然后在“后台处理”和“发生错…

黄金市场展望:CPI数据引发关注,技术面看涨

亚市现货黄金行情 8月14日周三,亚市盘中现货黄金价格小幅下跌,目前交投在2462美元/盎司附近。投资者将重点关注即将公布的美国消费者物价指数(CPI)数据,预计这将对黄金市场产生重大影响。 美联储政策预期与CPI数据 市场…

IIC电路详细设计

下面我们来聊一聊IIC。 首先要知道,为什么IIC需要接上拉电阻?这里就需要承接到上一部分的内容:三极管。 注意到这样一句话:「连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能 」,这里就涉及到「漏极/集电极开路」、「上拉电阻」和「线与」两个概念…

ReetrantReadWriteLock 读写锁原理

一、为什么要出现读写锁? 我们知道synchronizer 和 ReentrantLock 都是互斥锁 但现实很多业务场景都是读多写少,针对这种场景在并发中若采用 synchronizer 和 ReentrantLock 来保证原子性,但会降低代码的性能。这种场景,就可以…

数据库技术核心:迭代逻辑思考

文章目录 数据库演进史第一阶段:早期文件系统第二阶段:关系数据库(RDBMS)第三阶段:面向对象数据库(OODBMS)第四阶段:分布式数据库和 NoSQL 数据库第五阶段:NewSQL 数据库…

广告资料库是什么?如何正确使用Facebook广告资料库?一文解决你的烦恼!

什么是广告资料库 广告营销领域,创意和策略的更新速度极快。为了跟上这种节奏,广告资料库应运而生,成为广告人和营销专家的重要工具。广告资料库是一个集中存储和管理广告素材、创意案例、市场数据和用户反馈的平台。它不仅帮助用户获得灵感…

Redis集群:概念和部署示例

目录 Redis 集群的优点 集群模式 主从模式 缺陷 哨兵模式 缺陷 集群模式(Redis Cluster) 数据分片原理 添加节点 删除节点 Redis集群的分片方式 故障转移机制 如果Master只有一个Slave 如果Master有多个Slave 如果两个Slave票数一样呢&a…

UE5中动画重定向问题,新角色滑步,双脚不动向前后左右移动

UE5系列文章目录 我们在UE商场或者一些其他渠道的感觉非常好的人物模型和动画,想把他们替换到我们的工程中,或者把小白人替换到,就经常遇到动画重定向 Unreal Engine 5(UE5)中的动画重定向是一种强大的功能&#xff…

高校体育场管理小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,状态管理,学生管理,体育场管理,用户订单管理,学生订单,系统管理 微信端账号功能包括:系统首页,…