1.内存模型
2.概念解释
JVM 分为堆区和栈区,还有方法区,初始化的对象放在堆里面,引用放在栈里面,class 类信息常量池(static 常量和 static 变量)等放在方法区
1.方法区(线程共享)
主要是存储类信息,常量池(static 常量和 static 变量),编译后的代码(字节码)等数据
2.堆(线程共享)
存储初始化的对象,成员变量 (那种非 static 的变量),所有的对象实例和数组都要在堆上分配
3.虚拟机栈(线程私有)
栈的结构是栈帧组成的,调用一个方法就压入一帧,帧上面存储局部变量表,操作数栈,动态链接, 返回地址等信息,局部变量表存放的是八大基础类型加上一个应用类型,所以还是一个指向地址的指针
4.本地方法栈(线程私有)
主要存储Native 方法服务
5.程序计数器(线程私有)
记录当前线程执行的行号