简述类的加载过程JAVA
时间: 2024-05-01 20:06:28 浏览: 96
weblogic类加载过程简述
当我们运行一个Java程序时,Java虚拟机(JVM)会按照以下顺序加载类:
1. 加载:首先,JVM会在CLASSPATH环境变量所指定的路径或jar包中查找指定的类,如果找到了就把它加载到内存中;如果没找到,就报错ClassNotFoundException。
2. 链接:在加载完类后,进行链接,包括验证、准备和解析这三个阶段。
验证阶段会验证该类是否符合JVM的要求,包括字节码格式是否正确、类的内部结构是否符合规范等等。如果不符合,就会报错VerifyError。
准备阶段会为类变量和静态变量分配空间,并赋默认值。例如,整型变量的默认值为0,boolean变量的默认值为false等等。
解析阶段会将类中的符号引用转换为直接引用,并将其存储到方法区中,以便日后调用。如果解析失败,就会报错NoClassDefFoundError。
3. 初始化:当类经过验证、准备和解析等阶段后,就进入初始化阶段。在这个阶段,JVM会按照类中的静态变量的声明顺序依次执行各个变量的赋值操作,并且会执行类中的静态代码块。如果有异常抛出,就会报错ExceptionInInitializerError。
通过以上过程,一个类就被成功加载到内存中,并可以被使用了。
阅读全文