内存分配方式

原文地址:JavaGuide
为新生对象分配内存时,采用哪种方式,取决于 Java 堆内存是否规整。而 Java 堆内存是否规整,取决于 GC 收集器的算法是"标记-清除",还是"标记-整理"。
指针碰撞:
1.适用:堆内存规整(没有内存碎片)的情况下
2.原理:用过的内存全部整合到一边,没有用过的内存放在另一边,中间有一个分界值指针,只需要向着没用过的内存方向将该指针移动对象内存大小位置即可
3.GC收集器:Serial、ParNew
空闲列表:
1.适用:堆内存不规整的情况下
2.原理:虚拟机会维护一个列表。该列表中会记录哪些内存块是可用的,在分配的时候,找一块足够大的内存块来划分给对象实例,最后更新列表记录
3.GC收集器:CMS
内存分配并发问题
在创建对象的时候有一个很重要的问题,就是线程安全,因为在实际开发过程中,创建对象是很频繁的事情,作为虚拟机来说,必须要保证线程是安全的,通常来讲,虚拟机采用两种方式来保证线程安全:
CAS+失败重试: CAS 是乐观锁的一种实现方式。所谓乐观锁就是,每次不加锁而是假设没

内存分配方式最先出现在Python成神之路

版权声明:
作者:zhangchen
链接:https://www.techfm.club/p/20977.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>