对象怎么定位?对象怎么分配?

编程入门 行业动态 更新时间:2024-10-25 02:27:46

<a href=https://www.elefans.com/category/jswz/34/1771306.html style=对象怎么定位?对象怎么分配?"/>

对象怎么定位?对象怎么分配?

1.对象如何定位的

1.句柄方式

2.直接指针方式

一个直接寻址:访问速度快
一个是间接寻址:垃圾回收起来比较稳定

第二个比如如果是G1垃圾回收器的话,垃圾回收会进行垃圾的复制。会将垃圾移到另一个位置。如果用直接指针的方式的话就会发现T来回发生变化,效率低,所以句柄方式,GC回收比较稳定

句柄方式:
第一个指针是真正new出来的对象 第二个指针是类型数据指针

2.对象怎么分配

对象首先会尝试在栈上分配,在栈上的对象有一个好处,进行垃圾回收的时候不需要垃圾回收器处理,直接就弹出去了

如果对象很大的话,就会分配放入老年代,需要FGC才能回收


TLAB: ThreadLocalAllocationBuffer 线程本地分配

在多个线程同时new对象的时候,新对象都会存储在Eden区,这个时候就会产生争夺资源的情况,所以我们需要对线程进行同步优化:
我们在Eden中为每一个线程开辟了一个很小的空间,默认是1%,叫做线程私有ThreadLocalAllocationBuffer ,这样就不用同步,不会争夺资源

然后新生代的Eden区会进行垃圾清除GC,被清除了,就直接删除了,没有清除就进入幸存者 S1区,然后经过多次GC,看AGE到了没有,够age了就进入老年区

更多推荐

对象怎么定位?对象怎么分配?

本文发布于:2023-07-28 19:19:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1285496.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:对象   分配

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!