一个HeapTest的类,一个非静态的成员方法类型是自己,而且初始化的时候new自己, 在该类中写一个main方法,new自己抛的异常是栈空间内存溢出.
想请问一下:这两个无限创建的bytes和heapTest会被回收吗? 我的理解是不会回收的,因为他是被最开始new的那个HeapTest的引用的,初始化还没完成呢.但是抛出的这个异常让我感觉bytes应该是可回收的,要不是早就该抛出堆内存溢出的异常了,请有时间的大佬指点一下.
jvm的堆栈,对象是否可回收问题?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 轻点 别打脸 2020-05-13 17:47关注
不会回收,java内存由java堆,java栈,方法区等组成,对象在创建的时候,实例对象是存放在java堆实例池中的。无线创建HeapTest,导致java栈中,当前线程所用到的栈的大小,远远超过最大值,因此报 java.lang.StackOverflowError,栈内存溢出。
1、当前实例池中的实例对象,一直是被引用的,常量池中的实例对象不会被回收,下次创建的时候,会根据java栈中reference数据,找到这个实例对象。(从执行,到内存溢出,一直是一个线程)
https://blog.csdn.net/loney_wolf/article/details/105143016
https://blog.csdn.net/loney_wolf/article/details/105561410
或许这两篇文章对你有帮助。个人理解解决 无用评论 打赏 举报
悬赏问题
- ¥15 phython路径名过长报错 不知道什么问题
- ¥15 深度学习中模型转换该怎么实现
- ¥15 HLs设计手写数字识别程序编译通不过
- ¥15 Stata外部命令安装问题求帮助!
- ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
- ¥15 TYPCE母转母,插入认方向
- ¥15 如何用python向钉钉机器人发送可以放大的图片?
- ¥15 matlab(相关搜索:紧聚焦)
- ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
- ¥15 Arduino无法同时连接多个hx711模块,如何解决?