news 2026/4/22 9:57:59

八股文学习日常(虚拟机篇)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
八股文学习日常(虚拟机篇)

1.介绍JVM的内存模型

JVM的内存模型共分为五大部分,虚拟机栈,方法栈,堆,元空间和程序计数器:

1)程序计数器:可看作当前线程执行字节码的行号显示器。用于存储当前线程执行方法的JVM指令地址。当执行本地方法时,程序计数器为null,是唯一一个在JVM规范下无规定任何OutOfMemoryError的区域。

2)虚拟机栈:每个线程都有自己的虚拟机栈,生命周期与线程相同。当线程执行JVM方法时,虚拟机栈会创建栈帧,用来存储操作数栈等信息,可能出现StackOverflowError和OutOfMemoryError异常。

3)本地方法栈:与虚拟机栈类似,生命周期与线程相同,主要为本地方法服务,在HotSpot虚拟机中与JVM合二为一。在执行方法时同样会创建栈帧,可能出现StackOverflowError和OutOfMemoryError异常。

4)堆:是JVM中内存最大的一片区域,用于存储对象实例。从内存回收角度来看,分为新生代和老年代,新生代又包含Eden区和两个Survivor区。当堆中无对象实例,且堆内存无法向外扩展时,可OutOfMemoryError异常。

5)元空间:在JDK1.8版本及以后,方法区被元空间替代,用于存储已被虚拟机加载的类信息、静态变量以及常量等数据。方法区中可以选择不实现垃圾回收机制,可能会报OutOfMemoryError异常。

2.JVM内存里堆和栈有什么区别?

  1. 用途上,栈是方法执行的上下文,存局部变量、操作数栈等;堆是对象存储中心,存实例、数组、静态变量;
  2. 速度上,栈是连续内存,存取极快,堆是动态分配的不连续内存,速度较慢,还受 GC 影响;
  3. 生命周期上,栈和线程、方法绑定,线程终止或方法结束栈帧销毁;堆对象由引用可达性决定,无引用时被 GC 回收;
  4. 分配方式上,栈是静态分配,堆是动态分配;
  5. 线程安全上,栈线程私有无安全问题,堆共享需考虑同步;
  6. 空间大小上,栈较小且固定,堆较大可扩展,对应不同的 OOM 场景。

3.栈中存的是指针还是对象?

栈主要用来存储局部变量以及方法调用的上下文,堆用来存储实例对象。栈中存储的其实是对象的引用,当在方法中创建一个对象时,会将对象的引用存储到栈中,然后指向堆中的实例对象。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 0:22:59

VMware Workstation 基础使用教程

VMware Workstation 基础使用教程 VMware Workstation 是一款强大的桌面虚拟化软件,允许您在一台物理计算机上创建和运行多个虚拟机(VM)。每个虚拟机都可以安装独立的操作系统(如 Windows, Linux 等),并像运…

作者头像 李华
网站建设 2026/4/21 2:40:04

【Java毕设源码分享】基于springboot+vue的灾害应急救援平台设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/18 1:28:38

微信小程序开发入门教程

微信小程序开发入门教程 1. 准备开发环境 注册账号: 访问微信公众平台,注册一个小程序账号。根据需求选择个人、企业或其他类型主体。获取AppID: 注册成功后,在后台获取小程序的唯一标识 AppID,开发时需要用到。安装开…

作者头像 李华
网站建设 2026/4/18 17:10:42

“Attention Is All You Need” Paper Analysis (中英文对照精读分析)

“Attention Is All You Need” Paper Analysis Introduction (引言) English: The paper “Attention Is All You Need” introduced the Transformer architecture, a novel sequence transduction model that relies solely on attention mechanisms, eliminating recurr…

作者头像 李华
网站建设 2026/4/21 15:05:26

基于SpringBoot的电动车租赁平台系统(毕业设计项目源码+文档)

课题摘要在城市短途出行需求升级、共享租赁模式普及的背景下,传统电动车租赁存在 “车辆管控难、订单结算繁、用户体验差” 的痛点,基于 SpringBoot 构建的电动车租赁平台系统,适配城市共享租赁、门店自营租赁等场景,实现车辆管理…

作者头像 李华
网站建设 2026/4/17 16:04:14

【Dify解惑】如何利用 Dify 构建一个真正能“自己查资料、自己写报告”的企业助手?

如何利用 Dify 构建一个真正能“自己查资料、自己写报告”的企业助手? 目录 0. TL;DR 与关键结论1. 引言与背景2. 原理解释3. 10分钟快速上手4. 代码实现与工程要点5. 应用场景与案例6. 实验设计与结果分析7. 性能分析与技术对比8. 消融研究与可解释性9. 可靠性、…

作者头像 李华