栈上分配
栈上分配是java虚拟机提供的一种优化技术,基本思想是对于那些线程私有的对象(指的是不可能被其他线程访问的对象),可以将它们打散分配在栈上,而不是分配在堆上。分配在栈上的好处是可以在函数调用结束后自行销毁,而不需要垃圾回收器的介入,从而提供系统的性能。
栈上分配的一个技术基础是进行逃逸分析。
逃逸分析的目的是判断对象的作用域是否有可能逃逸出函数体。在运行时分析对象的生命周期,如果发现该对象只会被本线程使用(一般是一些局部对象),那么就将该对象在栈上分配,而不在堆中(heap)分配,
1)以减少对象对堆的压力
2)减少GC的次数
3)减少同步带来的效率问题