关于栈深度
来源:互联网 发布:puppy linux吧 编辑:程序博客网 时间:2024/06/06 12:37
睡了个午觉,继续开始学习JVM(《深入理解Java虚拟机》),这次本宝宝看到了关于Java虚拟机栈和本地方法栈中的一句话:如果现场请求的栈深度大于虚拟机允许的深度,将抛出StackOverflowError的异常。
好了,肯定猜到哪里我看不明白了吧。这都看不明白,你们看标题。
什么深度的,宝宝,看到这名字就怕屎了,以前自己学习数据结构总碰到什么树的深度,树的高度这类,所以总觉得这跟数据结构一样是个很高大上的东西。
查了查后,给我的感觉,其实这东西是这样的:
在JAVA 虚拟机中,每个方法在执行的同时都会创建一个栈帧,来储存一些方法相关的信息。当方法调用的时候它被压入虚拟机栈,方法结束出栈。
public class Stack{
public void createStack(){
createStack()
}
public static void main(String[] args)throws Throwable{
Stack stack = new Stack();
try{
stack.createStack();
}catch(Throwable t){
throw t;
}
}
在上面这段无限递归的方法中: 每一次调用createStack()方法都会往虚拟机栈中压入一个栈帧,因为是无限递归,所以就会一直往虚拟机栈中压栈,这样到某一个时候会栈深度大于虚拟机栈允许的深度。抛出StackOverflowError。
0 0
- 关于栈深度
- 关于深度、深度缓存和深度测试
- 关于深度学习
- 关于深度学习
- 关于深度复制
- 深度学习笔记一:关于深度学习
- 关于final的深度调查
- 关于FIFO的深度问题
- 关于深度阈值的设定
- 关于深度学习(deep learning)
- 关于java的深度复制
- 关于深度学习(deep learning)
- 关于缓存的深度剖析
- 关于dp,px深度解析
- 关于对象的深度复制
- 关于openGL的深度测试
- 关于深度学习(deep learning)
- 关于深度学习如何入门?
- [文章摘要]Semantic Enrichment and Analysis of Movement Data:Probably it is just Starting!
- JavaScript 自调用匿名函数
- SQL语句优化技巧
- SQL日期操作
- Android面试题3
- 关于栈深度
- HDU2141:Can you find it? (二分)
- 光照相关文章
- iOS消息推送的工作机制
- 正则表达式的使用
- ios基本控件之UIView
- 2016,成为更好的自己
- Panel移动
- Android面试题4