作者:半身风雪
上一节:四大引用和对象的判断
JVM 对象的分配策略
前言
老规矩,文章开始前,先上总图
一、栈上分配
栈上分配:针对那些作用域不会逃逸出方法的对象,在分配内存时不在将对象分配在堆内存中,而是将对象属性打散后分配在栈(线程私有的,属于栈内存)上,这样,随着方法的调用结束,栈空间的回收就会随着将栈上分配的打散后的对象回收掉,不再给gc增加额外的无用负担,从而提升应用程序整体的性能。
- 小对象(一般几十个byte),在没有逃逸的情况下,可以直接分配在栈上
- 直接分配在栈上,可以自动回收,减轻GC压力