摘要:框架说明开发者都知道会执行字节码。但是可能大多数人都不知道一个事实是的实现,它分析字节码,解释并执行代码。执行引擎字节码加载到运行时数据区后,会被执行引擎执行。解释器更快的解释字节码,但是执行非常慢。垃圾收集收集并移除不再被使用的对象。
JVM框架说明
java开发者都知道JRE(Java Runtime Environment)会执行字节码。但是可能大多数人都不知道一个事实:JRE是JVM的实现,它分析字节码,解释并执行代码。作为一个开发者,了解JVM的架构是非常重要的,这会让我们写的代码更有效率。本文会深入学习JVM架构和它的各个重要组件。
什么是JVM虚拟机是物理机器的软件实现。JAVA被设计成WORA(Write Once Run Anywhere), java程序是运行在虚拟机上的。编译器将java文件编译成.class文件,然后将.class文件载入到JVM,这一步会加载和执行class文件。下面的图是展示了JVM的架构。
JVM 架构图 JVM如何工作如上图所示,jvm主要分成三个子系统
类加载系统
运行时数据区
执行引擎
类加载系统java的动态类加载功能在类加载子系统中实现。当第一次在运行时(不是在编译时)涉及到一个class时,它会加载,链接并初始化类文件。
加载:类会通过这个组件加载。根加载器(rt.jar),扩展加载器(jrelibext)和系统加载器(classpath下的)是其主要的工具。
链接:主要分层三步
检查:判断其字节码是否符合虚拟器要求
准备:分配静态变量的空间,同时赋缺省值
解析:解析符号链接,链接到方法区的引用上去。
初始化:给静态变量赋初值,并执行静态代码区
运行时数据区运行时数据区分成5个组件
方法区:保存所有类数据,包括静态变量。一个jvm对应一个方法区。
堆 :保存所有的对象,对象中的变量以及数组。一个jvm对应一个堆。因为多个线程共享一个方法区和堆,所以数据保存不是线程安全的。
栈:每一个线程都会创建一个运行时的栈。对于每一个方法调用,都会在栈中创建一个栈帧。栈中保存了所有的本地变量。栈是线程安全的,因为它是线程独享资源。
PC寄存器:每个线程有一个PC寄存器,用来记录当前执行指令的地址,当一条指令执行完毕,它就会指向下一条指令。
本地方法栈:保存了本地方法的信息,每个线程会创建自己的本地方法栈。
执行引擎字节码加载到运行时数据区后,会被执行引擎执行。执行引擎读取字节码文件,逐个执行。
解释器:更快的解释字节码,但是执行非常慢。其缺点是当多次调用一个方法时,每次都会创建新的解释器。
JIT编译器:JIT编译器弥补了解释器的缺点。执行引擎会使用解释器来转换字节码,当发现重复的代码时就会使用JIT编译器,它会编译整个字节码,将之转换为本地代码,这个本地代码会直接用于多次的方法调用,以此来改进系统的性能。
垃圾收集:收集并移除不再被使用的对象。可以通过代码system.gc()来触发垃圾收集,
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/67720.html
摘要:全文为这些年,我曾阅读深入理解过或正在阅读学习即将阅读的一些优秀经典前端后端书籍。当然,如果您喜欢这篇文章,可以动手点点赞或者收藏。 全文为这些年,我曾阅读、深入理解过(或正在阅读学习、即将阅读)的一些优秀经典前端/Java后端书籍。全文为纯原创,且将持续更新,未经许可,不得进行转载。当然,如果您喜欢这篇文章,可以动手点点赞或者收藏。 基础 基础书籍 进阶 进阶阶段,深入学习的书...
摘要:全文为这些年,我曾阅读深入理解过或正在阅读学习即将阅读的一些优秀经典前端后端书籍。当然,如果您喜欢这篇文章,可以动手点点赞或者收藏。 全文为这些年,我曾阅读、深入理解过(或正在阅读学习、即将阅读)的一些优秀经典前端/Java后端书籍。全文为纯原创,且将持续更新,未经许可,不得进行转载。当然,如果您喜欢这篇文章,可以动手点点赞或者收藏。 基础 基础书籍 进阶 进阶阶段,深入学习的书...
摘要:全文为这些年,我曾阅读深入理解过或正在阅读学习即将阅读的一些优秀经典前端后端书籍。当然,如果您喜欢这篇文章,可以动手点点赞或者收藏。 全文为这些年,我曾阅读、深入理解过(或正在阅读学习、即将阅读)的一些优秀经典前端/Java后端书籍。全文为纯原创,且将持续更新,未经许可,不得进行转载。当然,如果您喜欢这篇文章,可以动手点点赞或者收藏。 基础 基础书籍 进阶 进阶阶段,深入学习的书...
摘要:全文为这些年,我曾阅读深入理解过或正在阅读学习即将阅读的一些优秀经典前端后端书籍。当然,如果您喜欢这篇文章,可以动手点点赞或者收藏。 全文为这些年,我曾阅读、深入理解过(或正在阅读学习、即将阅读)的一些优秀经典前端/Java后端书籍。全文为纯原创,且将持续更新,未经许可,不得进行转载。当然,如果您喜欢这篇文章,可以动手点点赞或者收藏。 基础 基础书籍 进阶 进阶阶段,深入学习的书...
阅读 3777·2021-11-17 09:33
阅读 3271·2021-10-08 10:05
阅读 3092·2021-09-22 15:36
阅读 1065·2021-09-06 15:02
阅读 2757·2019-08-29 12:45
阅读 1572·2019-08-26 13:40
阅读 3382·2019-08-26 13:37
阅读 399·2019-08-26 13:37