课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
类加载是程序员在学习java编程开发语言的时候需要重点掌握的一个编程技术,下面我们就通过案例分析来了解一下,类加载过程包含哪些步骤。
1、加载
加载过程主要完成以下3件事
1、通过一个类的全限名来获取定义此类的二进制字节流
2、将这个字节流所代表的静态存储结构转换为方法区的运行时数据结构
3、在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据和访问入口
而获取二进制字节流的方式可以有很多种,不一定是通过类的全限名;比如从ZIP读取,网络中读取或者动态代理读取等等。
加载阶段和连接阶段的部分内容,是交叉进行的。
2、验证
这一阶段是为了确保Class文件中的字节流是否符合当前虚拟机的要求,并且不会伤害到虚拟机自身安全;主要分为4个模块的验证。
3、准备(对静态变量进行默认初始化)
准备阶段正式为类变量分配内存和设置初始值的阶段,这些变量所使用的内存将在方法区中进行分配。
4、解析
解析是把符号引用转换为直接引用的过程;在class文件格式中,符号引用常常以,CONSTANT_FIELDREF_INFO等等类型的常量出现。然后来理解一下符号引号和直接引用的含义:
符号引用:符号引用以一组符号来描述所引用的目标,符号可以是任意形式的字面量,且引用的目标不一定已经加载到内存中。
直接引用:直接引用可以是一个直接指向目标的指针,相对偏移量或是一个能间接访问目标的句柄。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。