Java虚拟机:对象的创建

Java虚拟机:对象的创建

init方法即构造方法

给对象分配内存的方式:指针碰撞(使用的内存和未使用的完全分开,通过指针记录分界线,申请新的内存删除旧内存后只要移动指针就可以),空闲列表(有个单独的表格记录哪些是使用的,哪些是未使用的)。

如果垃圾回收器有将碎片内存整理压缩的功能,就会使用指针碰撞方法,否则用空闲列表方式。

线程安全性问题:

比如:在空闲模式下,多个线程的情况下,内存被占用,但是内存使用的数据表还未同步,这就导致了内存异常。

解决方法:

1,线程同步

2,本地线程分配缓冲(TLAB),每个区域都有私有的内存区域,用完之后再同步到数据表中