JVM的类加载机制主要有哪几种?

JVM的类加载机制主要有哪几种?,第1张

JVM的类加载机制主要有哪几种? 类加载过程:

(1)装载
  装载过程负责找到二进制字节码并加载至JVM中,JVM通过类名、类所在的包名通过ClassLoader来完成类的加载,同样,也采用以上三个元素来标识一个被加载了的类:类名+包名+ClassLoader实例ID。
(2)链接
  链接过程负责对二进制字节码的格式进行校验、初始化装载类中的静态变量以及解析类中调用的接口、类。在完成了校验后,JVM初始化类中的静态变量,并将其值赋为默认值。最后一步为对类中的所有属性、方法进行验证,以确保其需要调用的属性、方法存在,以及具备应的权限(例如public、private域权限等),会造成NoSuchMethodError、NoSuchFieldError等错误信息。
(3)初始化
  初始化过程即为执行类中的静态初始化代码、构造器代码以及静态属性的初始化,在四种情况下初始化过程会被触发执行:调用了new;反射调用了类中的方法;子类调用了初始化;JVM启动过程中指定的初始化类。

加载:

引导类加载器:使用C语言实现,嵌套在jvm内部用于加载java核心类库,只加载java javax sun等开头文件没有父类加载

扩展类加载器:java语言实现用于加载java系统属性指定目录下的类库,父类加载器为引导类加载器

系统类加载器:Java语言实现用于加载环境变量classpath或系统属性指定路径下的类库,父类为扩展类加载器

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

原文地址:https://54852.com/zaji/5585813.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-14

发表评论

登录后才能评论

评论列表(0条)

    保存