新闻资讯

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻资讯列表

java类的加载机制及加载过程是什么,java类加载机制面试题

发布时间:2023-10-13 21:41:13

java类的加载机制及加载进程是甚么

Java类的加载机制是指Java虚拟机(JVM)在运行时,加载和初始化Java类的进程。
Java类的加载进程主要分为三个阶段:

  1. 加载(Loading):在加载阶段,JVM根据类的全限定名(即类的包名加上类名)来查找并加载类的字节码文件。具体来讲,JVM会根据类加载器(ClassLoader)的层次结构,先尝试使用启动类加载器(Bootstrap ClassLoader)加载类,如果找不到,则由扩大类加载器(Extension ClassLoader)加载类,最后由利用程序类加载器(Application ClassLoader)加载类。如果以上类加载器都找不到类,则会抛出ClassNotFoundException异常。
  2. 链接(Linking):在链接阶段,JVM对类的字节码进行验证、准备和解析等操作。
  • 验证(Verification):验证阶段主要是确保类的字节码符合Java虚拟机规范,并且不会侵害虚拟机的安全性。
  • 准备(Preparation):准备阶段主要是为类的静态变量分配内存,并设置默许初始值。
  • 解析(Resolution):解析阶段主要是将类、接口、字段和方法的符号援用解析为直接援用。
  1. 初始化(Initialization):在初始化阶段,JVM履行类的静态变量赋值和静态代码块的代码,和履行类中定义的静态方法。在这个阶段,JVM会保证多线程环境下的安全性,即只有一个线程能够初始化类,其他线程需要等待。

需要注意的是,类的加载进程是在运行时动态进行的,而不是在编译时静态进行的。这意味着,Java代码中援用的类,在编译时可能还不存在,只有在运行时才会被加载和初始化。