java内存模型分为线程共享区,线程独占区
线程共享区:方法区,java堆
线程独占区:虚拟机栈,本地方法栈,程序计数器
程序计数器:一块较小的内存空间,记录当前线程所执行的字节码行号指示器
栈:执行的是java方法或本地方法
虚拟机栈:执行java方法。每个方法执行都会创建一个栈帧
栈帧:存放的是局部变量表等。
局部变量表:存放编译期可知的各种基本数据类型,引用类型
栈溢出: 递归调用方法时,方法不断调用,超出了栈帧。
内存溢出: 超出内存
本地方法栈:执行本地方法
堆:存放对象的实例
方法区:方法,接口,类的版本,字段