用手机设计装修的软件,搜索引擎优化效果,同时做网站建设和代账,网站维护与建设ppt类加载是Java虚拟机(JVM)在运行时加载字节码的过程。这个过程包括类的加载#xff08;Loading#xff09;、验证#xff08;Verification#xff09;、准备#xff08;Preparation#xff09;、解析#xff08;Resolution#xff09;和初始化#xff08;Initializatio…类加载是Java虚拟机(JVM)在运行时加载字节码的过程。这个过程包括类的加载Loading、验证Verification、准备Preparation、解析Resolution和初始化Initialization五个阶段。 加载Loading: 从本地文件系统、网络或其他来源读取二进制字节流代表的Java类文件然后将这个字节流转换为JVM可以识别的类对象Class对象。这个过程由类加载器ClassLoader负责完成。 验证Verification: 确保加载的类信息符合Java虚拟机规范没有安全方面的问题。例如检查类文件的魔数、主版本号和次版本号、常量池的有效性等。 准备Preparation: 为类变量静态变量分配内存并设置默认初始值。注意这里的初始值并不是我们编写的代码中设定的值而是Java语言规定的默认初始值。例如int类型的变量默认值为0boolean类型的变量默认值为false。 解析Resolution: 将符号引用替换为直接引用。符号引用是对类、接口、字段、方法等实体的抽象表示直接引用则是指内存地址。解析过程是在类的生命周期中首次遇到对类的主动使用时才会触发。 初始化Initialization: 执行类构造器()方法的过程这个方法由编译器自动收集类中所有类变量的赋值动作和静态代码块中的语句合并产生的。在准备阶段设置的默认初始值在此阶段可能会被修改。类初始化是线程安全的而且只会被执行一次。
需要注意的是类加载过程中的类加载器、验证、准备和解析这几个阶段是交叉进行的而不是严格按照顺序执行。而初始化阶段则必须等到前面四个阶段都完成后才能开始。