java之JVM

java之JVM,第1张

JVM
  • jvm加载类过程

jvm加载类过程


java原文件(.java文件)经过编译生成.class文件,运行时JVM中的类加载器(ClassLoader)将.class文件加载到内存中,经过初始化生成一个唯一的Class对象,它就像是一个模板,通过这个Class,就可以new出多个实例对象,同时通过每个实例对象也可以反过来找到这个Class(反射机制),也可以找到类加载器,如上图所示。

JVM中提供了三层的ClassLoader:

Bootstrap classLoader:主要负责加载核心的类库(java.lang.*等),构造ExtClassLoader和APPClassLoader。
ExtClassLoader:主要负责加载jre/lib/ext目录下的一些扩展的jar。

AppClassLoader:主要负责加载应用程序的主函数类

**其中加载过程分为:**双亲委派机制:
1、类加载器收到类加载的请求;
2、将这个请求委托给父类加载器去完成,一直向上委托,直到根加载器或者说启动类加载器;
3、启动类加载器检查是否能够加载这个类,能加载就结束,使用当前类加载器,否则,抛出异常,通知子加载器进行加载;
4、重复步骤三。

null:java调用不到大多数原因是调用了native方法(C,C++)。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/924349.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存