首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

门类的的装载、连接、初始化

2012-10-26 
类型的的装载、连接、初始化??一、Java虚拟机通过装载、连接和初始化一个Java类型(java类或java口),?????? 使

类型的的装载、连接、初始化

?

?一、Java虚拟机通过装载、连接和初始化一个Java类型(java类或java口),

?????? 使得该类型可以被正在运行的java程序所使用。有以下几个步骤:

?

???????? --> 装载:就是将java类型的二进制形式的文件读入到虚拟机之中,装载

??????????????????????? 由三个基本步骤组成:

?

????????????????????? --> 通过该类型的全限定名,产生一个代表该类型的二进制数据

??????????????????????????? 流。

????????????????????? --> 解析这个二进制数据流为方法区内的内部数据结构。

?

????????????????????? --> 创建一个代表该类型的java.lang.Class类的实例。

?

?????????--> 连接:就是把这种已经装载到虚拟机中的二进制的类型数据合并的虚拟

??????????????????????? 机的运行时状态中去,而连接又分为三个步骤。

?

????????????????????? --> 验证:确保被加载的类型数据的真确性并适合虚拟机的使用

?

????????????????????? --> 准备:为类型的静态变量分配内存,并将其初始化为默认值

?

????????????????????? --> 解析:将类型中的符号应用转化为直接应用

?

?????????--> 初始化:为类型的静态变量赋真确的初始值

?

??????? 整个类型的装载、连接、初始化的过程如图1-1所示:????????

???????????????????????????????????????

????????????????????????????
门类的的装载、连接、初始化

??????????????????????????????????????? 图1-1 类型的装载、连接、初始化

?

二、.class文件的来源

?

????????Java 虚拟机并没有明确的规定Java类型的二进制文件应该怎样产生,以下

????????是几种可能的产生方式:

?

??????????? --> 从本地系统中装载一个Java class文件

?

??????????? --> 通过网络下载一个Java class文件

?

????????????--> 从一个JAR、ZIP、CAB或者是其他某种归档文件中提取Java class

????????????????? 文件

?

????????????--> 从一个专有的数据库中提取Java class文件

?

??????????? --> 将一个Java 源文件动态编译为Java class文件

?

三、类装载器装载的最终产品

?

????? 类装载器装载的最终产品是位于堆内存中的Class类的实例化对象,它成为

??????Java程序和内部数据结构之间的接口。要想访问关于该类型的信息(它们是

??????被存储在内部数据结构中的),程序就要调用该类型对应的Class类的实例化

????? 对象中的方法。这个过程就是把一个Java类型的二进制形式的数据解析为方

????? 法区中的内部数据结构,并在堆中建立一个Class对象的过程。

?

????? 这个过程如下图3-1所示:
门类的的装载、连接、初始化
????????????????????????????????????????????????????????????????????? 图3-1?

???????????????

?

热点排行