Java对象创建流程 —— 个人学习记录

在持续对JVM进行深入学习的过程中,发现一个对象创建的过程与当时初学java时的概念完全不同了,希望记录一下自己此时的所得
1.首先创建对象时,会先看对象相应的类是否已经加载,初始化过了,如果是第一次使用该类,则会先加载类。
2.然后会给类分配内存空间,根据GC回收策略(主要看回收过后内存是否连续),进行连续内存分配或者根据内存空间的空闲列表进行内存分配,若对象起始内存地址不为8字节倍数的会补齐做对齐填充。(PS:如果是句柄引用的堆栈对象对应方式,还会在堆中的句柄池中创建相应指向对象的指针)
3.将对象的各字段初始值赋为零值。
4.设置对象头信息,包括GC分代信息、锁相关信息、非句柄引用下的指向相应Class的指针等。
5.为各字段进行预定义的赋值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值