Java 类的加载、连接、初始化详解

2018-03-26  本文已影响39人  zivxia

当程序主动调用某个类时,如果这个类还未被加载到内存,系统会通过加载、连接、初始化三个步骤对这个类进行初始化。在这之前,我们先讲下类编译的概念:

编译

java类的编译是将.java文件转化为.class二进制文件,使用javac test.java就可编译成test.class文件。

加载

java类的加载是将class文件通过类加载器加载到内存中,并且为之生成Class对象,也就是说当程序被加载到内存时,系统都会为之建立一个Class对象。所有类都是java.lang.Class的实例。
类的加载通常由类加载器完成,类加载器通常由jvm提供,这些类加载器也是我们前面所有程序运行的基础,jvm提供的这些类加载器通常被称为系统类加载器。

连接

java类的连接是将二进制class数据合并到JRE中,类的连接又分为三个阶段

初始化

在类的初始化阶段,虚拟机负责对类进行初始化,主要是对静态属性进行初始化。在java类中对静态属性指定初始值有两种方式:

类初始化的时机
上一篇 下一篇

猜你喜欢

热点阅读