关于Java中的StackWalker的类是什么?
1.位于java.lang包下的StackWalker
2.StackWalker中的Option枚举什么?
3.Option中的ava中的RETAIN_CLASS_REFERENCE、SHOW_REFLECT_FRAMES、SHOW_HIDDEN_FRAMES是什么
4.关于StackWalker的StackFrame接口是什么?
帮助文档[含有更多专有单词]
Enum StackWalker.Option
Class StackWalker
地址:https://www.runoob.com/manual/jdk11api/java.base/java/lang/StackWalker.html
栈帧是方法运行的基本结构,一个栈帧即对应一个方法。
正在执行的方法称为当前活动栈帧
在执行引擎运行时,所有指令都只能针对当前活动栈帧操作
压栈过多会产生StackOverflowError异常,表示请求的栈溢出,导致线程可用内存耗尽,通常出现于递归方法深度过大或者死递归情况,默认分配的内存大小为1M,可以使用-Xss 参数配置栈空间大小。
虚拟机栈通过压/出栈,对每个方法对应的活动栈帧进行运算处理,方法正常执行结束,则跳转到另一个栈帧上。
在执行的过程中,如果出现异常,会进行异常回溯,返回地址通过异常处理表确定。
关于栈帧的详细原理请参考
Java代码的执行原理