发表时间:2022-03-23来源:网络

java生命周期
上周学习整理到加载,今天继续看链接,链接分为验证,准备,解析。
验证
验证的目的是保证⼆进制字节流中的信息符合虚拟机规范,有没有安全问题。
java是个相对安全的语言,但是编译器和虚拟机是两个独⽴的东⻄,虚拟机只认⼆进制字节流,它不会管所获得的⼆进制字节流是哪来的。当然,如果是编译器给它的,那么就相对安全,但如果是从其它途径获得的,⽆法确保该⼆进制字节流是安全的。那么,所以验证还是有必要的,但也不是必须的。所以验证是一个重要但不必要的过程。
验证包含文件格式验证、元数据验证、字节码验证、符号引用验证
验证是一个相对耗时的过程,当所运行的代码如果反复使用和验证过,可以使用-Xverify:none 参数关闭,可以缩短加载时间。
准备
该过程做jvm两件事情
1:为已在⽅法区中的类的静态成员变量分配内存
2:为静态成员变量设置初始值,初始值为0、false、null等

八大基本类型默认值
解析
解析是虚拟机将常量池的符号引⽤替换为直接引⽤的过程。主要针对类或接⼝、字段、类⽅法、接⼝⽅法四类符号引⽤进⾏,分别对应于常量池中的CONSTANT_Class_info 、CONSTANT_Fieldref_info 、CONSTANT_Methodref_info 、CONSTANT_InterfaceMethodref_info`四种常量类型。
三个合称为链接
初始化
初始化是类加载过程的最后⼀步,到了此阶段,才真正开始执⾏类中定义的Java程序代码(初始化成为代码设定的默认值)。在准备阶段,类变量已经被赋过⼀次系统要求的初始值,⽽在初始化阶段,则是根据程序员通过程序指定的主观计划去初始化类变量和其他资源,或者可以从另⼀个⻆度来表达:初始化阶段是执⾏类构造器()⽅法的过程。
简单说来讲初始化过程就是调⽤类初始化⽅法的过程,完成对static修饰的类变量的⼿动赋值还有主动调⽤静态代码块。
使用
包含主动使用和被动使用,直接使用:如new对象,类的静态变量,静态方法;main方法,初始化子类方法会触发父类方法初始化。也就是说直接使用会引起类的初始化。
被动使用:类的常量,定义类的数组等。
卸载
类的所有实例都已经被回收,加载该类的classLoader也被回收,然后类对应的java.lang.Class对象没有任何地方被引用。满足后就会被卸载。
下一篇:调查—程序员推荐最多的25本书
计支宝app下载v3.1.29 安卓版
142.27MB |商务办公
小小优酷最新版下载v5.4.6 安卓官方版
68.11MB |影音播放
艺图语app下载v3.3.4 安卓免费版
34.33MB |系统工具
爱鸽者手机版下载v3.2.9 安卓版
243.57MB |商务办公
一品威客网接单app(一品众包)下载v2.7.1 安卓最新版
55.01MB |商务办公
诸葛找房网官方版下载v4.8.1.1 安卓最新版
66.6MB |生活服务
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14
葫芦侠三楼最新破解版下载v4.4.0.6 安卓版
其它手游葫芦侠7楼破解版免费下载v4.4.0.6安卓最新版
其它手游葫芦侠八楼免费版下载v4.4.0.6安卓版
其它手游葫芦侠3楼破解版免费下载v4.4.0.6安卓手机版
其它手游像素漫斗抱歉,“八神庵”是特指游戏角色的专有名词,不存在符合要求的常用同义词近义词。下载v1.00安卓版
其它手游葫芦侠4楼破解版游戏修改器下载v4.4.0.6安卓免费版
其它手游末日餐厅安卓版下载v1.35安卓版
其它手游葫芦侠十楼免费破解版下载v4.4.0.6安卓版
其它手游葫芦侠8楼最新破解版下载v4.4.0.6安卓版
其它手游