new一个对象的过程:
1.加载类对象,分配内存。这个过程由加载系统负责。主要就是将字节码加载到内存,然后检测类对象语义语法的正确性,接着为对象分配对应的内存。
2.分配完内存,开始初始化对象内存和写入类协议。具体就是把分配的内存都初始化为默认值(JMM最低安全保证)。写入对象的标识hashcode,对象的年纪gc,对象的锁标识01(默认01)。
3.给引用赋值/给属性赋值。这里的具体顺序由指令重排结果确定,从而也引出了构造函数并发的问题。
1.加载类对象,分配内存。这个过程由加载系统负责。主要就是将字节码加载到内存,然后检测类对象语义语法的正确性,接着为对象分配对应的内存。
2.分配完内存,开始初始化对象内存和写入类协议。具体就是把分配的内存都初始化为默认值(JMM最低安全保证)。写入对象的标识hashcode,对象的年纪gc,对象的锁标识01(默认01)。
3.给引用赋值/给属性赋值。这里的具体顺序由指令重排结果确定,从而也引出了构造函数并发的问题。
2022-10-21
在牛客打卡2天,今天也很努力鸭!
全部评论
相关推荐
11-24 10:46
山东大学 嵌入式软件工程师 给一个offer求了:他也还好吧,跟大部分人比他算是很幸运的了,感觉他三句话离不开北大,但是如果他出生在距离北京八中50公里以外的河北省,他的人生会截然不同诶。京津冀总给人一种特别割裂的感觉。
点赞 评论 收藏
分享
点赞 评论 收藏
分享