码迷,mamicode.com
首页 > 其他好文 > 详细

类的加载classload

时间:2019-05-25 19:51:49      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:分配   重要   静态变量   内存   保存   java   col   对象   转变   

在Java中最重要的可以说就是类的加载了。不论我们编写的功能多么复杂,或是多么简单,永远逃离不开的,就是将这个类从class文件加载到JVM中来。

 

首先我们要了解一下类的加载过程,包括:加载、连接(验证、准备、解析)、初始化、使用、卸载。

加载:将根据类的全限定名找到对应的Class文件,将它加载进JVM中,并生成Class对象保存在堆中。

连接:

  验证:检查加载进来的类信息是否满足我们JVM的规范。

  准备:对类中的静态变量分配内存空间,并赋予原始值。对常量直接赋予指定的值。

  解析:将类中的符号引用转变为直接引用。

初始化:为类中的静态变量赋值,执行静态代码块。

 

下面我们用一个类来验证一下:

public class Main7 {

    private final int z = 6;
    private final static int k = 1;
    private static int i = 5;
    private int j = 2;

    static {
        i = 10;
    }

    {
        i = 11;
        j=3;
    }

    public static void main(String[] args) {

    }
}

如上,我们定义一个Main7类,并对类中的每一步都打上断点,如下:

 

类的加载classload

标签:分配   重要   静态变量   内存   保存   java   col   对象   转变   

原文地址:https://www.cnblogs.com/yxth/p/10923392.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!