JVM 类加载与执行

用户头像
superman
关注
发布于: 2020 年 08 月 05 日

概述:

java通过字节码引入虚拟层隔离对底层依赖,一次编译到处运行。

类的字节码文件是运行时动态加载到jvm的方法区的

类有多种加载器,加载器间按双亲委托模式加载,可自定义类加载器实现隔离与灵活定制加载路径

类方法的字节码在调用方法时解释为机器码

1:总体结构

1:代码文件编译生成字节码文件,运行时加载(类加载-需要时加载)

2: 执行时jvm将字节码文件生成机器码执行。

字节码文件是java 引入的一种中间格式,介于代码与机器码之间,给JVM读取。

JVM运行时生成与运行环境匹配的机器码。

字节码屏蔽底层差异。但性能会有部分损耗。

JIT:动态编译可提前生成为机器码



2:类加载

需要时加载:类不是在JVM启动时全部加载,而是在使用时可动态加载。

有多种类加载器,分别负责加载不同的类文件。多个类加载器加载类时按照双亲委托模式加载(类加载器的上下级关系),先去上级类加载器中加载,如果没有本级加载器加载。

可自定义类加载器,灵活配置加载位置及隔离不同类加载器加载的类。类唯一标记=类加载器+类名。tomcat自定义类加载器可加载多个应用,应用中同名类不冲突。



3:字节码执行

类的方法字节码是在运行时解释器生成问机器码,交给cpu。



参考

极客时间架构师训练营-李智慧-第六章

用户头像

superman

关注

还未添加个人签名 2018.07.20 加入

还未添加个人简介

评论

发布
暂无评论
JVM类加载与执行