黑马Java面试


  • JVM专题

  • MQ专题

  • NoSQL专题

  • 多线程专题

  • 分布式专题

  • 数据库专题

  • 算法专题

  • 网络编程专题

  • JDK专题

  • 源码专题

  • 分布式框架专题

JVM专题


JVM组成结构:

image-20251015142303542

java编译器把java代码变成字节码class文件 通过执行引擎解释字节码指令 执行命令

JVM创建线程执行main方法 包含独立计数器:记录现存执行位置 虚拟机栈 本地方法栈

main方法执行时 搭建好虚拟机栈 调用时把栈帧放在虚拟机栈中

方法执行时如果需要new对象都要放在中,局部变量在虚拟机栈中的局部变量表

main执行,其内部方法也会入栈,内部方法执行完毕后其栈帧出栈 ——GC自动回收内存;

方法内部的局部变量都是在栈帧中存储;main方法执行完毕后 栈帧自行出栈,局部变量数据销毁

虚拟机栈

虚拟机栈基于线程 大小缺省是1M

StackFlowError 递归调用栈帧压栈不出栈会导致堆栈溢出

image-20251015145936522

代码异常
Finally块
方法区
Java内存区域/局部变量