今天爱分享给大家带来内存模型以及分区,需要详细到每个区放什么。【面试题详解】,希望能够帮助到大家。
JVM 分为堆区和栈区,还有方法区,初始化的对象放在堆里面,引用放在栈里面, class 类信息常量池(static 常量和 static 变量)等放在方法区
new:
方法区:主要是存储类信息,常量池(static 常量和 static 变量),编译后的代码(字 节码)等数据
堆:初始化的对象,成员变量 (那种非 static 的变量),所有的对象实例和数组都要 在堆上分配
栈:栈的结构是栈帧组成的,调用一个方法就压入一帧,帧上面存储局部变量表,操 作数栈,方法出口等信息,局部变量表存放的是 8 大基础类型加上一个应用类型,所 以还是一个指向地址的指针
本地方法栈:主要为 Native 方法服务
程序计数器:记录当前线程执行的行号