首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试题20:什么是局部变量表?

面试题20:什么是局部变量表?

作者头像
爪哇缪斯
发布2023-05-09 21:36:54
1970
发布2023-05-09 21:36:54
举报
文章被收录于专栏:爪哇缪斯爪哇缪斯
  • 局部变量表是栈帧的重要组成部分之一,它用于保存函数的参数以及局部变量
  • 局部变量表中的变量只在当前函数调用中有效,当函数调用结束后,随着函数栈帧的销毁,局部变量表也会随之销毁。
  • 由于局部变量表在栈帧中,因此,如果函数的参数和局部变量较多,会使得局部变量表膨胀,从而每一次函数调用就会占用更多的栈空间,最终导致函数的嵌套调用次数减少,如下所示:
    • StackOverflow2Test.java
  • 设置最大栈内存为-Xss160K,运行结果如下所示:

【解释】StackOverflowTest.java执行同样栈大小,count=850

  • 设置最大栈内存为-Xss256K,运行结果如下所示:

【解释】StackOverflowTest.java执行同样栈大小,count=2131

  • 使用jclasslib查看局部变量表中的内容
    • 在idea中添加jclasslib视图
  • 添加后,使用Show Bytecode With Jclasslib查看StackOverflow2Test.java文件
  • 查看结果如下所示,表明红框里的参数表示了在Class文件中的局部变量表的内容
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 爪哇缪斯 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档