JVM
2020-03-30 本文已影响0人
e56e2551219d
.java-编译后-.class-classloader加载到jvm中
JVM中内存主要分为:
线程共享数据区(方法区、堆)
GC回收主要回收区
非线程数据共享区 线程私有数据(程序计数器、本地方法栈、虚拟机栈)
程序计数器 记录当前线程执行的位置行数,每个线程都有对应的程序计数器
虚拟机栈超出深度会报StackOverflowError(死循环递归 方法太多),outOfMemoryError 内存溢出
虚拟机栈中有N个栈帧方法调用太多时会StackOverflowError
栈帧StackFrame: 每个方法被执行都会在虚拟机栈中创建一个栈帧,每个栈帧包含局部变量表、操作数栈、动态链接、返回地址 参数和局部变量保存在局部变量表中
本地方法栈和虚拟机栈类似