Java对象的实例化方式和过程
2020-10-07 15:40:16 41 举报
AI智能生成
Java对象实例化的方式
作者其他创作
大纲/内容
创建对象的方式
new
最常见的方式
变形1:XXX的静态方法
变形2:XXXBuilder/XXXFactory的静态方法
Class的newInstance():只能调空参的构造器,权限必须是public
Constructor的newInstance():可以调空参、带参的构造器
clone():当前类需要实现Cloneable()接口
反序列化:从文件中或网络中获取一个对象的二进制流
第三方库Objenesis
创建对象的步骤
1.判断对象对应的类是否加载、链接、初始化
2.给对象分配内存空间
如果内存规整
指针碰撞
如果内存不规整
虚拟机需要维护一个列表
空闲列表分配
说明
3.处理并发安全问题
采用CAS失败重试、区域加锁保证更新的原子性
每个线程预先分配一块TLAB
-XX:+/-UseTLAB参数设定
4.初始化分配到的空间
所有属性设置默认值,保证对象实例字段不赋值时可以使用
5.设置对象的对象头
6.执行init初始化
收藏
0 条评论
下一页