news 2026/5/26 6:15:40

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

作者头像

张小明

前端开发工程师

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/5/25 21:25:27

EmotiVoice能否生成双语混合语音?中英文夹杂合成实测

EmotiVoice能否生成双语混合语音?中英文夹杂合成实测 在智能语音助手、虚拟偶像和国际化内容创作日益普及的今天,用户早已不满足于“能说话”的TTS系统。他们期待的是更自然、更具表现力的声音——比如在一句中文里流畅插入“Zoom会议”、“deadline”或…

作者头像 李华
网站建设 2026/5/25 16:04:38

EmotiVoice语音合成系统灰度回滚机制设计要点

EmotiVoice语音合成系统灰度回滚机制设计要点 在智能语音助手、虚拟主播和有声内容平台日益普及的今天,用户早已不再满足于“能说话”的机器语音。他们期待的是富有情感、贴近真人表达的声音体验。EmotiVoice 正是在这一背景下脱颖而出的开源TTS引擎——它不仅支持多…

作者头像 李华
网站建设 2026/5/25 14:57:56

psycopg2-binary 全面教程:常用 API 串联与实战指南

大家好,我是jobleap.cn的小九。 psycopg2-binary 是 Python 连接 PostgreSQL 数据库的核心库(psycopg2 的预编译二进制版本,无需编译依赖,开箱即用),本文将从环境准备、核心 API 讲解到实战案例&#xff0c…

作者头像 李华
网站建设 2026/5/26 6:12:34

Go + 边缘计算:工业质检 AI 模型部署实践指南

在工业生产领域,产品质检是保障出厂质量的关键环节。传统人工质检方式受限于人眼疲劳、主观判断差异等问题,存在效率低、漏检率高、成本攀升等痛点。随着AI计算机视觉技术的发展,基于图像识别的工业质检模型应运而生,但模型部署环…

作者头像 李华
网站建设 2026/5/26 6:13:56

基于springboot + vue宠物天然粮食商城系统

宠物天然粮食商城系统 目录 基于springboot vue宠物天然粮食商城系统 一、前言 二、系统功能演示 详细视频演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue宠物天然粮食商…

作者头像 李华
网站建设 2026/5/25 23:13:21

R语言绘制复杂加权数据(nhanes数据)多模型生存分析决策曲线

决策曲线分析(Decision Curve Analysis, DCA)是一种用于评估、比较和优化诊断试验、预测模型或分子标志物临床实用性的统计方法。它由Andrew J. Vickers和Eugene B. Elkin于2006年提出,旨在弥补传统统计指标(如灵敏度、特异度、RO…

作者头像 李华