1.给对象分配内存
a.创建对象的几种方式:
使用new关键字(使用new关键字会增加耦合)
利用反射机制创建对象(Class类的newInstance())
采用clone(已经存在一个分配内存的源对象,调用clone()需要实现Cloneable)
采用序列化的机制(序列化时,需要实现Serializable接口,将对象序列化到磁盘中,采用反序列化可将磁盘中的对象信息反序列化到内存中)
b.new关键字创建对象
new 类名
根据new的参数,在常量池中定位一个类的符号引用
如果没有找到符号引用,说明类没有被加载,则进行类的加载,解析,初始化
虚拟机为对象分配内存
将分配的内存初始化为零值
调用对象的init()
c.给对象分配内存的策略
指针碰撞
空闲列表
2.线程安全性问题
线程同步(加锁)
本地线程分配缓冲
3.初始化对象
4.执行构造方法