JVM第一部分

PC寄存器:存储的是数字 0, 3, 6, 10, 17 这样的字节码偏移量。

LineNumberTable:是一个映射表,它将上述的偏移量"翻译"成我们程序员能看懂的源代码行号。

JVM堆

JVM堆由两部分组成:年轻代+老年代

年轻代包括三部分:eden区,s0,s1 s0+s1被称作幸存者区

老年代主要保存生命周期长的对象

jdk1.7和1.8堆的区别

1.7的堆中有一个区域是永久代,用来存放类信息,静态变量,常量,编译后的代码

1.8移除了永久代,把数据存储到本地内存的元空间中,防止内存溢出。

什么是虚拟机栈

线程运行时需要的内存称为虚拟机栈

垃圾回收是否涉及栈内存

不涉及,垃圾回收主要是用来回收堆内存

栈内存空间越大越好吗

未必,栈内存大了会导致能活动的线程数变少

方法内的局部变量是否安全

形参也是一种局部变量

栈内存溢出情况

栈帧过多导致栈内存溢出 例如递归

栈帧过大导致栈内存溢出

栈和堆的区别

栈主要是用来存放局部变量和方法调用,堆主要是用来存储java对象和数组的。

堆中有垃圾回收机制,而栈没有。

栈是线程私有的,堆是线程共有的。

相关推荐
求梦8203 小时前
JVM学习
jvm·学习
姓蔡小朋友4 小时前
JVM 类加载器
jvm
姓蔡小朋友5 小时前
JVM 内存分区
jvm
成为你的宁宁7 小时前
【Zabbix运维监控实战(附图文教程):Nginx 服务可用性、连接请求状态、CPU 内存占用与 JVM(Jar 包 / Tomcat)全维度监控】
运维·jvm·nginx·zabbix
姓蔡小朋友7 小时前
JVM 垃圾回收
jvm
杨杨杨大侠9 小时前
深入理解 LLVM:从编译器原理到 JIT 实战
java·jvm·编译器
鱼跃鹰飞10 小时前
怎么排查线上CPU100%的问题
java·jvm·后端
小当家.10510 小时前
JVM/八股详解(下部):垃圾收集、JVM 调优与类加载机制
java·jvm·面试
芒克芒克10 小时前
JVM性能监控
java·jvm
码农阿豪11 小时前
远程调试不再难!Remote JVM Debug+cpolar 让内网 Java 程序调试变简单
java·开发语言·jvm