00-彻底搞懂JVM之虚拟机的组成

前言

本系列博文是用来复习和总结自己对JVM的学习,主要学习渠道为网络博文,github,码云以及《深入理解Java虚拟机》,全程尽量用大白话的方式去记录,浅显易懂,这里我们只是简单介绍,不展开详细描述,后续会用单独的博文来分别介绍每个内容的细节,如果大家发现有不妥或者错误之处,欢迎大家指正,一同进步.

JAVA技术体系

在这里插入图片描述
关于java的发展史和虚拟机的概念我就不多赘述了,感兴趣的朋友可以去百度一下了解了解,这方面的知识不是本系列博文的重点.

JAVA虚拟机的组成

在这里插入图片描述

执行引擎

执行引擎是java虚拟机的组成部分之一,大家都知道硬件和软件是两个不同的概念,高级语言和机器语言也是两种东西,jvm中的执行引擎,就是一个介于机器语言和高级语言之间的翻译官,它的主要作用就是将java定义的一些指令集翻译成硬件层面的机器指令,来达到让jvm控制硬件完成运作的目的.说的简单点,就是我们是字节码,执行引擎就是web系统,硬件就是DB,我们来操作web系统完成db的数据操作,但是真正操作db的是web系统而不是我们,我们可能就是点了一下新增按钮,输入了点信息,但是web系统会把输入的内容翻译成db认识的sql语句去操作db.

本地方法库接口

本地方法库接口和本地方法库也是java虚拟机的组成部分之一,java属于高级语言,底层很多都是通过C语言来实现操作硬件的,所以一些基础的操作java语言本身是不太方便操作硬件的,所以只能通过C语言提供一些接口来给java调用,用来达到java操作内存或者磁盘等硬件的目的.就想我们平时给外部第三方提供的接口一样.

类装载器子系统

类加载器是我们关注的比较多的一个部分,它的主要作用就是将我们写的java代码编译成.class字节码并装载到内存,当运行时进行使用的作用,其中的编译器将java文件编译成.class文件,主要经过词法分析,语法分析,抽象语法树,语义分析,注解抽象语法树,字节码生成器等等过程实现一个class字节码文件的输出.

运行时数据区

运行时数据区是JVM中最重要的一个概念,也是java大火的原因所在,就是因为它提供了自动内存管理的功能,让手动管理内存的繁琐操作得以释放,减轻了我们程序员的负担,但是也同样流出了一句话,圈里的人想进去,圈外的人想出来.这话说的确实没毛病.java虚拟机在运行的过程中把管理内存的部分都交给了运行时数据区去处理,运行时数据区又分成了多个区域去分别管理不同的内容,体系复杂又庞大,像我们创造的代码对象的整个生命周期都是通过它来操控的,不然你也不会有时间去泡妹了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值