Java虚拟机是怎么加载Java类的
一、Java类的加载
Java虚拟机加载Java类的过程分为三个步骤:加载(Loading)、链接(Linking)和初始化(Initialization)。
二、加载
第一步,加载,是指根据类的全限定名(Fully Qualified Name)从指定的位置(如磁盘文件或网络)获取相应的二进制字节流,并将这些字节流转换成一个代表该类的Class对象,然后放入内存中。
三、链接
第二步,链接,是指把字节码文件转换为可以在虚拟机上运行的有效代码,包括校验(Verification)、准备(Preparation)、解析(Resolution)三个阶段。
1、校验:确保加载的类文件的字节流中包含的信息符合Java虚拟机规范,确保不会破坏虚拟机的安全。
2、准备:为类变量(即static变量)分配内存,并将其初始化为默认值。
3、解析:把类中的符号引用转换为直接引用的过程。
四、初始化
第三步,初始化,是指给类的静态变量赋予正确的初始值,初始化就是执行类构造器<clinit>()方法的过程。
Java虚拟机只有在程序首次使用某个类时才会对其进行初始化,类的初始化阶段会执行类中的<clinit>()方法,它由编译器自动收集类中的所有类变量的赋值动作和静态语句块(static{})中的语句合并产生。
猜您想看
-
使用PHP进行数据挖掘
如何使用PHP...
2023年05月05日 -
如何在Linux中使用socat命令进行网络数据传输
SEO软文:了...
2023年05月06日 -
如何在 CentOS 7 上设置 NTP 时间同步服务?
如何在 Cen...
2023年04月24日 -
Django ModelChoiceField中修改过滤查询集queryset的两种方法分别是什么
一、直接修改q...
2023年05月23日 -
如何设置 OpenWrt 路由器作为 FreeRadius 服务器?
如何设置Ope...
2023年04月17日 -
GPT在视频内容智能化处理中的应用
GPT在视频内...
2023年05月15日