JVM

.java-编译后-.class-classloader加载到jvm中

JVM中内存主要分为:

线程共享数据区(方法区、堆)

GC回收主要回收区

非线程数据共享区 线程私有数据(程序计数器、本地方法栈、虚拟机栈)

程序计数器 记录当前线程执行的位置行数,每个线程都有对应的程序计数器

虚拟机栈超出深度会报StackOverflowError(死循环递归 方法太多),outOfMemoryError 内存溢出

虚拟机栈中有N个栈帧方法调用太多时会StackOverflowError

栈帧StackFrame: 每个方法被执行都会在虚拟机栈中创建一个栈帧,每个栈帧包含局部变量表、操作数栈、动态链接、返回地址 参数和局部变量保存在局部变量表中

本地方法栈和虚拟机栈类似

你可能感兴趣的:(JVM)