类加载过程&对象的创建过程

类加载过程

1、JVM发现要使用一个类,首先要到方法区中找;如果找到了,就直接使用,如果没有找到,才会去找这个类的class文件,然后加载;

(在找class文件时,是根据classpath配置的地址去找;如果没有配置,就在当前目录找)

2、在硬盘上找到class文件后,就开始加载这个class,根据书写顺序,先后将静态成员加载到静态区域,非静态成员加载到非静态区域;

3、接下来为所有的静态成员变量分配变量空间,同时赋默认值;

4、接下来根据书写的顺序为静态成员变量显示赋值,同时执行静态代码块;

上面的步骤都执行完毕,类加载完成;

对象的创建过程

1、首先JVM在堆内存中开辟空间;

2、在对象空间中为类中的所有非静态成员变量分配空间,赋默认值;

3、调用相应的构造函数进栈;

4、在执行构造函数中的代码之前,先要执行隐式三步:

a)        super():调用父类构造函数

b)        给对象空间中的非静态成员变量显示赋值

c)         执行构造代码块

5、完成隐式三步后,接下来开始执行构造函数中的代码;

构造函数结束出栈,对象创建完成;

posted @ 2018-07-09 10:59  少说点话  阅读(368)  评论(0编辑  收藏  举报
网站运行: