java类的加载及对象的创建过程

这里写图片描述

类加载过程

  1. 当JVM第一次要使用一个类的时候,需要加载这个类;
  2. 首先根据classpath的配到硬盘上找这个类的class文件(如果没有配置classpath,就到当前位置找);
  3. 如果找到这个class,就加载到方法区;
    a) 分别将这个类的静态成员加载到静态区域,非静态成员加载到非静态区域;
    b) 在静态区域为所有静态成员变量分配空间,赋默认值;
    c) 为所有静态成员变量显示赋值
    d) 执行所有静态代码块
    (c和d具体顺序是按照代码书写的先后顺序)
    等到静态代码块都执行完毕,类加载完成;

对象的创建过程

  1. JVM遇到new关键字,首先回去堆内存中开辟空间;
  2. 为所有非静态的成员变量分配空间,赋默认值;
  3. 调用相应的构造函数进栈执行;
  4. 构造函数执行时首先要执行隐式三步:
    a) super():调用父类构造函数 // 如果第一行是this就调用this
    b) 给对象中所有非静态成员变量显示赋值;
    c) 执行构造代码块;
    (b和c具体执行顺序,是按照代码书写的先后顺序)
  5. 隐式三步执行结束后,开始执行构造函数中的代码;
    等到构造函数结束出栈,对象才算创建完成
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值