【发布时间】:2013-11-30 13:27:00
【问题描述】:
我了解每个线程都有自己的stack。原始类型和引用保存在堆栈上,并且没有对象保存在堆栈上。
我的问题是:
- 堆栈可以增长多少? (比如参数 -
Xms和 -Xmx) - 我们可以限制它的增长吗?
- 堆栈是否有默认的最小值和最大值?
- 垃圾回收如何在堆栈上工作?
【问题讨论】:
-
只是对阅读本文的人的一点评论:Escape-Analysis(Java 6 Update 21 及更高版本)允许将对象存储在堆栈中。减少垃圾收集器的工作量。
-
GC 在堆栈上不起作用。您不能在堆栈上创建东西,因此没有什么可收集的 - JVM 本身将东西放入堆栈并在必要时将其删除。收集的“垃圾”是您创建的对象的实例。