JVM知识点总结二

news/2025/3/5 9:37:45/

参考文章:【Java面试题汇总】JVM篇(2023版)_jvm面试题2023-CSDN博客

1、说说你了解的JVM内存模型:

        JVM由三部分组成:类加载子系统、运行时数据区、执行引擎

JVM内存模型:

内存模型里的运行时数据区: 

  • 类加载子系统:根据给定的全限定名类名(如:java.lang.Object)来装载class文件到运行时数据区中的方法区中。

  • 执行引擎:根据程序计数器中存储的字节码指令解释/编译为对应平台上的本地机器指令。

  • 运行时数据区:又分为堆、方法区、虚拟机栈、本地方法栈、程序计数器方法区和堆是线程之间共享的内存区域,而虚拟机栈、本地方法栈、程序计数器则是线程私有的,就是说每个线程都有自己的这个区域。

  •         程序计数器:线程私有的,是一块很小的内存空间,作为当前线程的行号指示器,用于记录当前虚拟机正在执行的线程指令地址;
  •         虚拟机栈:线程私有的,一个线程一个栈,一个栈又是由一个个栈帧组成,每个栈帧都对应一次方法的调用,每个方法执行的时候都会创建一个栈帧,用于存储局部变量表(存方法参数和局部变量)、操作数栈(存方法执行过程中的中间结果,或者其他暂存数据)、动态链接和方法返回地址等信息,当线程请求的栈深度超过了虚拟机允许的最大深度时,就会抛出StackOverFlowError;
  •         本地方法栈:线程私有的,保存的是native方法的信息,当一个jvm创建的线程调用native方法后,jvm不会在虚拟机栈中为该线程创建栈帧,而是简单的动态链接并直接调用该方法;
  •         堆: java堆是所有线程共享的一块内存,包括新生代(伊甸园区、幸存区S0和S1)和老年代,几乎所有对象的实例和数组都要在堆上分配内存,因此该区域经常发生垃圾回收的操作;
  •         方法区: 方法区是所有线程共享的一块内存,存放已被加载的类信息、方法信息、常量、静态变量、即时编译器编译后的代码数据。  即永久代,在jdk1.8中不存在方法区了,被元数据区替代了,原方法区被分成两部分: 1、加载的类信息,2、运行时常量池;加载的类信息被保存在元数据区中,运行时常量池保存在堆中;

 

​​​​​​​

Java对象结构

Java对象由三个部分组成:对象头、实例数据、对齐填充。

对象头由两部分组成,第一部分存储对象自身的运行时数据:哈希码、GC分代年龄、锁标识状态、线程持有的锁、偏向线程ID(一般占32/64 bit)。第二部分是指针类型,指向对象的类元数据类型(即对象代表哪个类)。如果是数组对象,则对象头中还有一部分用来记录数组长度。

实例数据用来存储对象真正的有效信息(包括父类继承下来的和自己定义的)

对齐填充:JVM要求对象起始地址必须是8字节的整数倍(8字节对齐)
 


http://www.ppmy.cn/news/1431594.html

相关文章

水利发电厂自动化控制系统如何保证电站稳定

水力发电是一种依赖于水位落差形成的冲击力强劲的水流来驱动水轮机旋转,进而通过发电机转化为电能的发电方式。水力发电自动化控制系统的基本原理在于利用水流的自然落差,转化为旋转的机械能,再进一步转化为电能。这种发电方式具有环保、可再…

代码随想录学习Day 29

1005.K次取反后最大化的数组和 题目链接 讲解链接 思路:先对数组进行排序,保证数组中最小的值(也就是取反后损失最小的值)位于数组最前端。然后对数组进行遍历,在k次内尽可能将负数全部取反。当数组中元素全部>0…

Python网络爬虫项目开发实战:如何处理并发下载

注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程:Python网络爬虫项目开发实战_并发下载_编程案例解析实例详解课程教程.pdf 在Python网络爬虫项目…

element中file-upload组件的提示‘按delete键可删除’,怎么去掉?

问题描述 element中file-upload组件会出现这种提示‘按delete键可删除’ 解决方案: 这是因为使用file-upload组件时自带的提示会盖住上传的文件名,修改一下自带的样式即可 ::v-deep .el-upload-list__item.is-success.focusing .el-icon-close-tip {d…

在Nuxt.js中添加PostCSS自动前缀器

在其他浏览器中,有些 CSS 属性需要带有前缀。如-webkit- | -o- | -ms- 等等 Autoprefixer 是一个 PostCSS 插件,可以将你的CSS代码渲染到浏览器中自动补充厂商前缀,因此你不用担心自己编写的CSS代码有浏览器兼容性问题。 如: .fl…

金蝶云星空对接打通金蝶云星空委外超耗查询接口与委外超耗新增接口

金蝶云星空对接打通金蝶云星空委外超耗查询接口与委外超耗新增接口 数据源系统:金蝶云星空 金蝶K/3Cloud结合当今先进管理理论和数十万家国内客户最佳应用实践,面向事业部制、多地点、多工厂等运营协同与管控型企业及集团公司,提供一个通用的ERP服务平台…

面试经典150题——分发糖果

面试经典150题 day15 题目来源我的题解方法一 两次不同方向的遍历(应该是贪心)方法二 贪心 题目来源 力扣每日一题;题序:135 我的题解 方法一 两次不同方向的遍历(应该是贪心) 遍历两次(左→…

茶饮门店本地生活抖音团购运营方案计划书

【干货资料持续更新,以防走丢】 茶饮门店本地生活抖音团购运营方案计划书 部分资料预览 资料部分是网络整理,仅供学习参考。 PPT可编辑80页(完整资料包含以下内容) 目录 抖音本地生活运营方案 1. 账号基础搭建与优化 - 门店账号…