
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
java编程开发语言是目前大多数程序员都在学习的一个编程语言,而今天我们就一起来了解一下,java编程类加载器的一些基础知识。
JVM启动的时候通过引导类加载器加载一个初始类。这个类在调用publicstaticvoidmain(String[])方法之前被链接和初始化。这个方法的执行将依次导致所需的类的加载,链接和初始化。
加载是一个通过指定的名字来查找当前类和接口并把它读取到一个字节数组的过程。下一步这个字节数组将被解析成一个确定的并带有majorversion和minorversion的类对象。任何被直接父类指定了名字的类或者接口都会被加载。一旦这个过程完成,一个类或者接口对象便通过一个二进制表示的数据来创建完成。
链接是一个类或接口验证以及类型、直接父类和父接口准备的过程。链接包含了3步,验证,准备以及部分解析。
验证是一个确定类或者接口是否是正确结构以及是否遵从Java语言和JVM规定的语法的过程。比如下面:
符号表中一致的,正确的格式
final方法/类没有被重写
方法遵从访问控制关键字
方法有正确的参数个数和类型
字节码没有不正确的操作栈结构
变量在使用前已经初始化
变量有正确的类型值
验证阶段的这些检查意味着它们不需要在运行的时候才进行。链接阶段的验证虽然拖慢了加载速度,但是它避免了在字节码运行时还需要进行各种检查。
准备涉及到静态存储的内存分配以及JVM会用到的任何的数据结构比如方法表。静态字段被创建和初始化为默认值,然而,在这个阶段并不会像初始化阶段中那样会有初始化或者代码被执行。
解析是一个可选阶段,它通过加载引用的类或者接口来检查符号引用,以及检查引用的正确性。如果这时没有发生符号引用的解析,它会被延期到字节码指令使用之前进行。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。