JVM第一部分

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

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

JVM堆

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

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

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

jdk1.7和1.8堆的区别

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

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

什么是虚拟机栈

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

垃圾回收是否涉及栈内存

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

栈内存空间越大越好吗

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

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

形参也是一种局部变量

栈内存溢出情况

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

栈帧过大导致栈内存溢出

栈和堆的区别

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

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

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

相关推荐
Dicky-_-zhang12 小时前
分布式事务解决方案TCC实战
java·jvm
m0_6393107916 小时前
大数据技术原理-HDFS的安装与应用
java·大数据·jvm·hadoop·spring·hdfs·eclipse
Dicky-_-zhang17 小时前
API接口签名验证实战
java·jvm
AI人工智能+电脑小能手18 小时前
【大白话说Java面试题 第70题】【JVM篇】第30题:垃圾回收器是怎样寻找 GC Roots 的?
java·开发语言·jvm·面试
jiayong2320 小时前
JVM深度分析:性能优化实战指南
jvm·性能优化
Dicky-_-zhang20 小时前
JWT令牌安全实践详解
java·jvm
tongluowan00720 小时前
jvm垃圾回收器 - ZGC
java·jvm·zgc·垃圾回收器
Dicky-_-zhang20 小时前
API安全设计与防护实战
java·jvm
接着奏乐接着舞21 小时前
vscode 给 Maven 启动的 JVM 加上 `-Dfile.encoding=UTF-8`
jvm·vscode·maven
Dicky-_-zhang1 天前
微服务安全防护实战:OAuth2与JWT鉴权
java·jvm