栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

默认堆栈大小是多少,可以增加吗,它如何与垃圾回收一起使用?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

默认堆栈大小是多少,可以增加吗,它如何与垃圾回收一起使用?

堆栈可以增长多少?

您可以使用名为VM的选项

ss
来调整最大堆栈大小。VM选项通常使用-X {option}传递。因此,您可以用于
java-Xss1M
将最大堆栈大小设置为1M。

每个线程至少有一个堆栈。某些Java虚拟机(JVM)将Java堆栈(Java方法调用)和本机堆栈(VM中的本机方法调用)放入一个堆栈中,并使用托管到本机框架(称为M2Nframe)执行堆栈退卷。一些JVM分别保留两个堆栈。

Xss
在大多数情况下,设置Java堆栈的大小。

对于许多JVM,它们在不同平台上为堆栈大小放置了不同的默认值。

我们可以限制这种增长吗?

发生方法调用时,将在该线程的堆栈上创建一个新的堆栈框架。堆栈将包含局部变量,参数,返回地址等。在Java中,您永远不能将对象放在堆栈上,只有对象引用可以存储在堆栈上。由于数组也是Java中的对象,因此数组也不存储在堆栈中。因此,如果通过将局部基本变量,参数分组为对象来减少它们的数量,则可以减少堆栈上的空间。实际上,我们无法在Java堆栈上显式放置对象这一事实会影响性能一段时间(缓存未命中)。

堆栈是否具有一些默认的最小值或默认的最大值?

如前所述,不同的虚拟机是不同的,并且可能会随着版本的变化而变化。看这里。

垃圾收集如何在堆栈上工作?

Java中的垃圾回收是一个热门话题。垃圾收集旨在收集 堆中
无法访问的对象。因此,需要定义“可达”。堆栈上的所有内容均构成GC中根集引用的一部分。每个线程的每个堆栈均可访问的所有内容均应视为活动状态。还有其他一些根集引用,例如Thread对象和一些类对象。

这只是GC上堆栈的一个非常模糊的用法。当前,大多数JVM使用的是世代GC。本文对Java
GC进行了简要介绍。最近,我读了一篇非常好的文章,内容涉及.net上的GC。oracle
jvm上的GC非常相似,因此我认为这也可能对您有所帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/469367.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号