Java之三:Java类的装载、链接和初始化
来源:互联网 发布:图片二维码识别软件 编辑:程序博客网 时间:2024/03/29 02:32
本博文主要讲述Java类的装载、链接和初始化
Java类执行的一般过程:
一般的Java应用开发过程:开发人员编写的是Java源代码文件(.java),IDE会负责调用Java的编译器把Java源代码编译成平台无关的字节代码(byte
Java字节代码的表现形式是字节数组(byte[]),而Java类在JVM中的表现形式是java.lang.Class类的对象。一个Java类从字节代码到能够在JVM中被使用,需要经过加载、链接和初始化这三个步骤。这三个步骤中,对开发人员直接可见的是Java类的加载,通过使用Java类加载器(class
加载(Loading)
1. 通过类的全名产生对应类的二进制数据流。(注意,如果没找到对应类文件,只有在类实际使用时才抛出错误。)
2. 分析并将这些二进制数据流转换为方法区(JVM
3. 创建对应类的
链接(Linking)
1. 验证(verification):链接的第三部解析会把类中成员方法、成员变量、类和接口的符号引用替换为直接引用,而在这之前,需要检测被引用的类型正确性和接入属性是否正确(就是
2. 准备(preparation):对类的成员变量分配空间。虽然有初始值,但这个时候不会对他们进行初始化(因为这里不会执行任何
3. 解析(Resolution):为类、接口、方法、成员变量的符号引用定位直接引用(如果符号引用先到常量池中寻找符号,再找先应的类型,无疑会耗费更多时间),完成内存结构的布局。
初始化类(Initialization)
1. 如果基类没有被初始化,初始化基类。
2. 有类构造函数,则执行类构造函数。
类构造函数是由
由于博主知识有限,如有误,请指正点评,欢迎交流
- Java之三:Java类的装载、链接和初始化
- Java类的装载、链接和初始化
- Java类的装载、链接和初始化
- java类的装载(Loading)、链接(Linking)和初始化(Initialization)
- java类的装载(Loading)、链接(Linking)和初始化(Initialization)
- JVM java类的装载、链接、初始化
- java类的装载和初始化。
- java的初始化和类装载顺序
- 转 java类的装载(Loading)、链接(Linking)和初始化(Initialization)
- Java中的类装载和初始化模块
- Java中的类装载和初始化模块
- Java类的加载、链接和初始化
- Java类的加载、链接和初始化
- Java类的加载、链接和初始化
- Java类的加载、链接和初始化
- Java类的加载、链接和初始化
- Java类的加载、链接和初始化
- JVM 如何装载和初始化一个Java class(类)
- RPC/RMI之三:JSONRPC
- 分布式系统之二:CAP定理
- 分布式系统之三:CAP定理的实践
- Java之一:Serialization(序列化…
- Java之二:工厂模式
- Java之三:Java类的装载、链接和初始化
- Java之四:类的加载器ClassLoader
- Java之五:Java实例化类的方法
- Java之六:Java Reflection
- 分布式系统之四:间接通信
- 分布式系统之五:进程/线程
- 原来恐慌一场
- Curling 2.0
- c# 去除bom文件头