一、对象的创建
1、java对象创建的方式
使用new关键字 |
使用Class类的newInstance方法 |
使用Constructor类的newInstance方法 |
使用clone方法 |
使用反序列化 |
2、主要讲new一个对象的过程
1、确定内存
对象所需的内存在类加载的时候就已经确定了
2、划分内存块
3、线程安全
当有多个对象创建的时候,会造成内存划分不当。即对象A创建的时,对象B也创建并修改的了指针位置,但对象A拿到的指针位置不是最新的所有就可能导致错误。
解决方案
1、CAS机制(不理解无所谓之后回介绍)
2、本地线程分配缓冲
二、对象的内存布局
1、对象在堆内存中的存储布局划分为三个部分:对象头(header)、实例数据(instance data)、对齐填充(padding)
三、对象的访问定位
1、通过句柄
2、直接指针访问对象(快)