JVM的概述

概念:JVM也就是虚拟机,本质上是一个运行在计算机上的程序,

作用运行JAVA字节码文件

JAVA字节码文件运行过程:

  1. 编译:通过Javac命令,调用JDK编译器,将Java源文件编译成class字节码文件
  2. 执行:通过Java命令,调用JVM虚拟机,对class字节码文件进行执行

组成:JVM由类加载器 运行时数据区 JVM解释器 JIT即时编译器 垃圾回收机制 本地方法库等部分组成

由类加载器完成字节码文件的加载验证和解析,存储在运行时数据区,并由执行引擎中的解释器,完成字节码到机器码的解释执行,同时进行热点代码的统计分析,调用JIT即时编译器将字节码直接编译成机器码,提高执行效率,JVM运行期间的方法,数据对象统一存放在运行时数据区

JVM执行方式:

JVM以解释和编译混合模式,执行字节码文件。

  1. JVM的执行方式以解释执行为主,在执行过程中,JVM将每个字节码文件中的每一个指令,通过解释器转换成当前平台可以识别的机器码,然后通过CPU执行
  2. 为了提高执行效率,JVM还会在运行期间,通过对热点代码的统计分析,识别出高频的方法调用 循环体 公共模块等,当超过阈值(在Client模式下的默认阈值为1500次,在Server模式下的默认阈值为10000次)时,JVM会基于JIT(即时编译器)将热点代码转换成机器码,直接交给CPU执行,提高执行效率

JVM解释器和JIT编译器

   JVM解释器:程序执行的时候,解释器首先发挥作用,省去了编译器编译的时间,加快程序的执行效率

JIT编译器:在程序运行过程中,随着时间的推移,JIT开始慢慢的发挥作用,把热点代码编译成本地代码后,以后执行相同的代码,即可直接交给CPU执行,带来更高的效率

功能:

1解释与运行

对字节码文件中的指令实时的解释成机器码

    2 内存管理:

          自动为对象,方法等分配空间

          自动的垃圾回收机制,回收不在使用的对象

    3 即时编译:

          对热点代码进行优化,提高执行效率

       即时编译解释:

Java需要将字节码文件的字节码指令用JVM实时编译成机器码交给计算机运行,实现了跨平台特性,虚拟机如果发现字节码文件中有多次调用的热点代码,会主动将其优化成机器码,并保存在内存中,当下次执行可以直接调用。

为什么要学习JVM

  1. “面试造火箭,工作拧螺丝”,JVM属于面试官特别喜欢提问的问题
  2. 未来的工作场景中,或出现以下场景

线上系统突然宕机,系统无法访问

线上系统响应速度太慢,优化系统性能过程中发现CPU占用过高,原因也许是因为JVM的GC次数过于频繁.

新项目上线,需要设置JVM的各种参数

类加载器

   字节码文件必须通过类加载器,通过加载 验证 解析等校验步骤,将字节码文件中的类,加载至JVM的运行数据区,才可以执行字节码

垃圾回收器

   JVM在运行期间,通过垃圾回收器,地是对运行数据区进行垃圾对象的回收,从而实现了内存的自动管理

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值