做网站徐州,品牌推广策略有哪些,制作公司网页要注意什么问题,中企动力做网站 知乎文章目录 什么是JVM#xff1f;JVM的组成JVM的大致工作流程JVM的内存模型 什么是JVM#xff1f;
我们知道Java面试#xff0c;只要你的简历上写了了解JVM#xff0c;那么你就必然会被问到以下问题#xff1a;
什么是JVM#xff1f;简单说一下JVM的内存模型#xff1f;… 文章目录 什么是JVMJVM的组成JVM的大致工作流程JVM的内存模型 什么是JVM
我们知道Java面试只要你的简历上写了了解JVM那么你就必然会被问到以下问题
什么是JVM简单说一下JVM的内存模型类的加载的过程是怎样的什么叫内存溢出、堆栈溢出、逃逸分析
大家可能大概知道JVM是个什么东西但很难把他完全说清楚 这些零散的问题如果没有一个结构来容纳将会很难记忆也很难联系起来
我们今天就系统的聊一下JVM以及经常问到的关于JVM的面试题
JVM的组成
先看这张图 JVM共由四个模块组成其中包含为两个子系统和两个组件分别为
class loader 类加载系统execution engine 执行引擎子系统runtime data area 运行时数据区组件native interface 本地借口组件
面试中 最经常问到的就是 1、3两个类加载器、内存模型。 相信大家都有体会~
那我们先来讲讲JVM工作的完整流程再来详细讲讲这两个面试中最经常问到的两个组件。
JVM的大致工作流程
首先通过编译器把Java源代码转换成字节码class loader类装载器再把字节码加载到内存中将其放在运行时运行数据区的方法区内而字节码文件仅是JVM的一套指令集规范并不能直接交给底层操作系统去执行因此需要特定的命令解析执行引擎execution engine将字节码翻译成底层的系统指令再交给CPU去执行而这个过程中需要调用其他语言的本地库接口native interface来实现整个程序的功能。
好了有了这个大概的认识我们大概能了解每个部分分别的功能和作用。
下面我们来聊聊面试工程中经常问到的关于JVM的问题。 我们从最常问到的问题开始
JVM的内存模型
首先是内存模型内存模型一共有五个单元分别是程序计数器方法区对站和本地方法站这个如果直接来寄可能比较难寄我们通过实际实验过程中内存创建的规律来记忆会更方便一些首先一个县城创建他会带出三个东西分别叫做程序技术器和加虚拟之战以及本地方法站这三个单元
那另外两个单元方法区和堆就是县城共享的区域
我们分别说一下每一个区域它的功能新程序技术器它是县城私有的一个县城创建之后他就会有一个程序技术器他存在的意义是当我们操作系统中现成数超过CPU的合数的时候那我们执行如果就存在现场等待的情况为了记住我们这个县城当前已经执行到哪个步骤了所以就存在一个东西要做程序技术器记录县城正在指执行的这个将要执行下一步骤的这个指令的地址
我们分别说一下每一个区域它的功能新程序技术器它是县城私有的一个县城创建之后他就会有一个程序技术器他存在的意义是当我们操作系统中现成数超过CPU的合数的时候那我们执行如果就存在现场等待的情况为了记住我们这个县城当前已经执行到哪个步骤了所以就存在一个东西要做程序技术器记录县城正在指执行的这个将要执行下一步骤的这个指令的地址第二个东西叫做嘉华逊基站嘉兴站是每个县城都会有一个叫训练机站他从每这个站里会存在若干个战争每个战争保存一个方法的入餐出餐静态变量还有这个返回值等地址等等再就是本地方发展本地方法但他的作用和教训激战作用是类似的只不过他提供的他是为这个本地方法native Mike提供这个战争战争的记录 第二个东西叫做嘉华逊基站嘉兴站是每个县城都会有一个叫训练机站他从每这个站里会存在若干个战争每个战争保存一个方法的入餐出餐静态变量还有这个返回值等地址等等再有就是本地方发展本地方法但他的作用和教训激战作用是类似的只不过他提供的他是为这个本地方法native Mac提供这个战争战争的记录
OK下面是性能调优的部分我们这V M一共有哪些参数以及我们做G的性能分析工具有哪些工具这部分我们先跳过不讲
OK下面是性能调优的部分我们这V M一共有哪些参数以及我们做G的性能分析工具有哪些工具这部分我们先跳过不讲在下面就是执行模式一个Clas文件在被执行时会经过哪些过程它的完整的生命周期是哪些
然后就是类加载的过程首先我们有一个基础知识叫做双庆委派机制双庆委派机制是什么就是当我们一个例假的气需要加载一个Clas的时候他会先去找他的负累询问他的负累让他的副理信息加载这个类如果他的父类加载不了然后他再让他的负累的负累再来尝试加载如果所有的父类加载不了才会上之类赖加载
所有的父类加载不了再才会上之内赖加载常见的内下载器一共有四种第一种是B strap类下载器他是加载我们家最底层代码这个类然后是ex深深立下的气再是什么家的气最后是自定义的那家的气
关于兵器优化一共有哪些内容首先公共指表达式的消除以指令重拍内敛还有我们比较常问道的陶艺分析理论他分析的方法是什么现场是怎么做到一分析的还有我们线上是如何分配空间以及同步消除的。
关于兵器优化一共有哪些内容首先公共指表达式的消除以指令重排内敛还有我们比较常问道的陶艺分析理论他分析的方法是什么现场是怎么做到一分析的还有我们现站上是如何分配空间以及同步消除的一些问题最后呢就是我们的GCGC是一个更长见的问题JC首先分为了两个问题一个是分类回收还有一是回收器的实现风带回收我们可以分为这个新生代老年代然后当然在最新的这个哪里会出去几万中出现了这个叫持久代这个概念
最后呢就是我们的GCGC是一个更长见的问题JC首先分为了两个问题一个是分类回收还有一是回收器的实现风带回收我们可以分为这个新生代老年代然后当然在最新的这个那里会出去几万中出现了这个叫持久代这个概念回收期的实现有哪些我们有创新的回收期并且回收期C MSG o还有Z GC等等这些回收器。