类的加载过程

类的加载过程: 

1、在创建对象时,会先判断对象所属的类型(类)在内存中是否存在,如果存在则直接使用;如果不存在,则把类加载到内存中的方法区下 

2、在把类(.class)加载到方法区时,分两种情况: 2.1、从.class文件的上面向下依次加载内容 2.2、静态的内容加载到方法区的静态区域下 非静态内容加载到方法区的非静态区域下 

3、当.class中的内容全部加载到方法区后,会对静态区域下的所有静态变量进行默认初始化 

4、当所有的静态变量默认初始化完成之后,再对静态变量进行显式初始化 

5、在对所有的静态变量显式初始化完成之后,会调用静态代码块进入到栈中执行 

6、只有在所有的静态代码块全部执行(按照静态代码块在.class文件中的先后书写顺序执行)完之后,整个.class的加载才完成。在类加载完成之后,就可以创建对象了:

对象的创建过程: 

1、在堆中开辟一块空间,在开辟完后,给空间分配一个地址 

2、当空间分配地址后,把所有的非静态成员全部加载到开辟的空间下 

3、当所有的非静态成员全部加载完成之后,对所有的非静态成员变量进行默认初始化 

4、在所有的非静态成员变量默认初始化完成之后,调用该对象的构造函数进入到栈中执行 

5、在栈中构造函数执行时,会分为两部分: 5.1、第一部分:隐式三步          1、执行super()语句         2、显式初始化所有的非静态成员变量         3、把构造代码块加到栈中执行 5.2、第二部分:在隐式三步,执行完之后,才会执行构造函数中所书写的代码 

6、在整个构造函数全部执行完之后,才会把空间的地址交给对象引用

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值