技术问 - 类的初始化过程

2019-03-06  本文已影响0人  sexyhair

类的初始化过程:

加载class文件
在栈中开辟空间
在堆中申请(new)空间
成员变量的初始化的默认初始化
成员变量的初始化的显示初始化
构造方法初始化
给对象地址值

代码:

/**
 * 成员变量与构造方法
 */
public class Student2 {
    // 成员变量
    String name = "name的显示初始化值";
    int age = 1;
    String sex = "sex的显示初始化值";

    public void setName() {
        this.name = "通过构造给name赋值";
    }
}
public class ClassDemo1 {
    public static void main(String[] args) {
        Student2 stu = new Student2();
    }
}

在内存中的执行过程:

类的初始化过程

创建对象并赋值在内存中的过程:

    /**
       *创建对象并赋值对应的代码
       *成员变量与成员方法
       */
public class ClassDemo1 {
    public static void main(String[] args) {
        Student stu = new Student();
        System.out.println(stu.name);//null
        System.out.println(stu.age);//0
        System.out.println(stu.sex);//null
        stu.name = "你好";
        System.out.println(stu.name);//你好
        stu.setName("你好11");
        System.out.println(stu.name);//你好11
    }
}
创建对象并赋值

说明:图中第三步在内存中详细的过程即是 “类的初始化过程”

上一篇 下一篇

猜你喜欢

热点阅读