首页 > 其他分享 >类加载过程

类加载过程

时间:2023-01-31 21:14:22浏览次数:40  
标签:初始化 变量 静态 代码 引用 过程 加载

类加载过程

当程序主动使用某个类时,如果该类还未被加载到内存中,系统会通过加载、连接、初始化三个步骤来对该类进行初始化,如果没有意外,JVM将会连续完成这三个步骤,所以有时也把这三个步骤统称为类加载。

(1)加载

​ 指的是将类型的class字节码数据读入内存。

(2)连接

​ ① 验证:校验合法性等

​ ② 准备: 准备对应的内存(方法区)、创建Class对象,为类变量(类中的static变量)赋默认值,为静态常量 (final)赋初始化值。

​ ③ 解析: 把字节码中的符号引用替换为对应的直接地址引用。

符号引用:
	符号引用主要包含下面三类常量:
		1、类和接口的全限定名(Fully Qualified Name)

        2、字段的名称和描述符(Descriptor)

        3、方法的名称和描述符
直接引用:
	把直接替换成引用的地址

(3)初始化

​ initilize(类初始化) 即执行<clinit>类初始化方法,大多数情况下,类的加载就完成了类的初始化,有些情况下,会延迟类的初始化。

类的初始化执行的是<clinit>(),还方法由类变量的显示赋值代码以及静态代码块中的代码构成。
实例的初始化执行的是<init>(),实例的初始化一定晚于类的初始化

类的初始化:
(1)类的初始化就是为静态变量初始化。实际上,类初始化的过程时在调用一个<clinit>()方法,而这个方法是编译器自动生成的。编译器会将如下两部分的所有代码,按顺序合并到类初始化<clinit>()方法体中。

  • 静态类成员变量的显式赋值语句

  • 静态代码块中的语句

(2)每个类初始化只会进行一次,如果子类初始化时,发现父类没有初始化,那么会先初始化父类。

(3)类的初始化一定优先于实例初始化。

标签:初始化,变量,静态,代码,引用,过程,加载
From: https://www.cnblogs.com/beishanqingyun/p/17080759.html

相关文章

  • 查询表字段说明(存储过程)
    USE[Inroad]GO/******Object:StoredProcedure[dbo].[Help_TableColumn]ScriptDate:2023/1/3117:39:28******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERON......
  • 5. RGCA架构设计过程
    介绍RGCA:RequirementGoalConceptArchitecture需求目标概念架构利益相关者与需求系统因为使人受益而存在;系统的主要需求也来源于利益相关方通过系统为一些......
  • vue.js客服系统实时聊天项目开发(十四)点击加载展示历史消息列表
    当访客一进去聊天界面以后,需要获取一下历史消息展示到界面,并且需要能分页的原理展示  在顶部有一个加载更多记录的按钮,点击就能按分页获取数据//展示......
  • Vulnhub之Cheran EE靶机详细测试过程(需要特别注意靶机的网络模式)
    CheranEE靶机信息名称:Cheran:1地址:https://www.vulnhub.com/entry/cheran-1,521/识别目标主机IP地址(kali㉿kali)-[~/Vulnhub/Cheran]└─$sudonetdiscover-i......
  • Oracle存储过程打印输出错误信息、行号,快速排查
    本文转载自https://blog.csdn.net/lw112190/article/details/128268465 感谢博主 天天代码码天天 热心分享测试存储过程如下:createorreplaceprocedureprc_testi......
  • Vulnhub之Cherry靶机详细测试过程(获得Shell采取不同的方法)
    Cherry识别目标主机IP地址由于目标主机无法自动获取IP地址,参照本人另文首先解决该问题。─(kali㉿kali)-[~/Vulnhub/Cherry]└─$sudonetdiscover-ieth1-r192.16......
  • 正弦交流电及产生过程
    基本概念大小和方向随时间周期性变化的电压或电流称做交流电。如下图,分别是三角波、PWM脉冲波、正弦波。大小和方向均随时间按正弦规律变化的电压或电流称为正弦交流电。......
  • 图片懒加载
    前言影响网页性能最主要的因素应该属图片资源了,现在一张图片动不动几兆,如果一张页面有很多图片(像电商类网站),等页面上的图片全部加载完毕再显示在浏览器上的话,用户可能早就......
  • Vulnhub之Chill Hack靶机详细测试过程
    ChillHack作者:jason_huawen靶机信息名称:ChillHack:1地址:https://www.vulnhub.com/entry/chill-hack-1,622/识别目标主机IP地址由于目标主机无法自动获取IP地址......
  • 05-DALVIK加载和解析DEX过程
    5.1 dex和odex文件结构和关系      上图是Dex文件和Odex文件的结构和关系图。    应用程序在第一次启动app的时候,会在/dalvik/dalvik-cache目录下生成odex......