jvm是如何加载.class文件的

2019-12-24  本文已影响0人  bearrrrr
jvm是如何加载.class文件的

java虚拟机是有class loader,runtime data area,execution engine 和 native interface组成的

由class loader解析特定格式的.class文件 然后execution engine对其解析 解析完成后就提交到操作系统去执行.

                    JAVA的反射实现

java反射的基本实现

                                        类从编译到执行的过程

编译器将Tset.java文件编译成Test.class字节码文件

ClassLoader将.class字节码文件转化为JVM的Class<Test>对象

JVM利用Class<Test>对象实例化Tset对象

                                          谈ClassLoader

主要工作在class加载阶段,从系统外部获取Class二进制数据流,所有的class都是由ClassLoader加载的,负责通过将class文件的二进制数据流装载进系统,然后交给java虚拟机进行连接,初始化等操作

                                        ClassLoader的种类

BootStrapClassLoader 加载核心库java.*  由c++编写

ExtClassLoader 加载扩展库javax.*

AppClassLoader 加载程序所在目录

自建ClassLoader

后三者都是由java编写

自己粗略的写一个classLoader jvm是如何加载.class文件的

双亲委派机制可以避免相同字节码的加载

classLoader.loadClass和Class.forName的区别
上一篇 下一篇

猜你喜欢

热点阅读