当前位置: 首页 > article >正文

面试必杀技:彻底搞懂 JVM 内存模型与区域划分(上篇)

在 Java 面试中JVMJava 虚拟机是区分中高级开发者的分水岭。很多同学对 JVM 感到恐惧觉得它只是一堆干巴巴的概念。其实只要把它当成一个“虚拟的操作系统”一切就豁然开朗了。本系列将分为上、中、下三篇带你彻底吃透 JVM 面试题。今天我们先从最基础也是最核心的**运行时数据区内存模型**开始剖析核心考点一JVM 内存到底是怎么划分的JVM 在执行 Java 程序时会把它管理的内存划分为五个经典的区域。按照线程是否共享可以分为两大类1. 线程私有区域每个线程人手一份随线程生灭程序计数器Program Counter Register通俗理解可以理解为当前线程执行代码的“行号指示器”。就像看书时的书签记录你读到了哪一页。CPU 切换线程时就是靠它恢复进度。特点占用内存极小是 JVM 中**唯一一个不会发生 OOM内存溢出**的区域。Java 虚拟机栈JVM Stack通俗理解Java 方法执行的舞台。每个方法一执行就会在栈里压入一个“栈帧”存局部变量、操作数栈、动态链接等。方法结束了栈帧就弹出来。报错场景递归调用太深会引发StackOverflowError如果栈允许动态扩展却申请不到足够内存会引发OutOfMemoryError。本地方法栈Native Method Stack通俗理解和虚拟机栈非常像只不过它服务的是带有native关键字的方法比如调用底层 C/C 库。2. 线程共享区域大家共用一块地儿存在并发竞争堆内存Java Heap绝对的主力通俗理解全 JVM 最大的一块内存几乎所有被new出来的对象实例和数组都住在这里。它是垃圾回收GC的重点照顾对象。时代变迁在 JDK 1.8 之前堆中分为新生代、老年代和永久代方法区的实现 JDK 1.8 之后永久代被移除方法区移到了本地内存的**元空间MetaSpace**中。方法区Method Area通俗理解这是一个“逻辑概念”用来存储已被加载的类信息、常量、静态变量、即时编译器编译后的代码等“死规矩”。落地实现JDK 1.7 的落地实现叫“永久代”在堆里JDK 1.8 之后落地实现叫“元空间”在本地内存里。核心考点二字符串常量池去哪儿了版本变迁必考这是一个极具区分度的连环坑面试官特别爱问字符串常量池在哪JDK 1.6 及之前字符串常量池在**方法区永久代**中。JDK 1.7字符串常量池和静态变量被挪到了Java 堆当中。因为永久代 GC 效率太低而字符串会大量生成放在堆里能被更快回收。JDK 1.8 及之后永久代直接被砍掉变成了元空间放在直接内存中。但是字符串常量池依然老老实实呆在 Java 堆里。核心考点三堆和栈的区别究竟是什么通俗举例假如你在方法里写了Object obj new Object();这里的obj作为一个局部变量引用就是个门牌号它存在虚拟机栈里。这里的new Object()作为一个真真切切的实例对象大房子它存在堆里。栈管运行活儿怎么干堆管存储东西存哪。维度堆 (Heap)栈 (Stack)功能存放对象实例、数组存放局部变量、方法执行状态共享性所有线程共享线程私有速度较慢需要 GC 计算极快随方法调用自动压栈/弹栈异常类型容易报OutOfMemoryError(OOM)容易报StackOverflowError面试高分背诵总结篇当面试官让你介绍一下 JVM 的内存区域时抛出以下话术“面试官您好JVM 的多线程运行时数据区主要分为五大块可以按照‘线程共享’和‘线程私有’来划分。线程私有的包含三块程序计数器唯一不抛 OOM 的区域用于记录代码行号、虚拟机栈负责 Java 方法的执行任务存储局部变量表等栈帧信息、本地方法栈服务 Native 方法。线程共享的包含两块一块是 Java 堆它是内存占用最大、也是 GC 主要负责的区域专门存放对象实例和数组另一块是方法区存储类信息、静态变量和运行池常量池。特别需要注意的是历史版本的演进JDK 1.7 把字符串常量池从方法区移到了堆里而 JDK 1.8 彻底废弃了永久代采用了使用本地直接内存的‘元空间’来实现方法区这不仅解决了永久代容易 OOM 的问题也使得 GC 更加高效。”掌握这套话术JVM 面试的开局你已稳拿满分接下来请期待中篇垃圾回收机制大揭秘。点赞收藏随时复盘大厂 Offer 拿到手软

相关文章:

面试必杀技:彻底搞懂 JVM 内存模型与区域划分(上篇)

在 Java 面试中,JVM(Java 虚拟机)是区分中高级开发者的分水岭。很多同学对 JVM 感到恐惧,觉得它只是一堆干巴巴的概念。其实,只要把它当成一个“虚拟的操作系统”,一切就豁然开朗了。 本系列将分为上、中、…...

从“亡羊补牢”到“规则先行”:金仓数据库的主动防御之道

在数字化转型的浪潮中,数据已成为企业的核心资产。然而,SQL注入攻击如同潜伏在阴影中的“不速之客”,时刻威胁着数据库的安全。即使开发团队严守预编译、输入过滤等防线,遗留代码、第三方组件的漏洞或人为疏忽仍可能给攻击者可乘之…...

四六级 | 2026年英语四六级视频课程

2026上半年四六级笔试/口试时间已定 📌 考试时间 ▪ 笔试:6月13日 ▪ 口试:5月23日—5月24日 📌 准考证打印 ▪ 口试准考证:5月19日 9:00起 ▪ 笔试准考证:6月5日 9:00起 四六级 | 2026年英语四六级视…...

OpenClaw Windows 10 WSL2 安装与配置指南+飞书接入(使用腾讯云Coding Plan)

文章目录基础环境第一阶段:安装 WSL2 环境1.1 开启 WSL21.2 迁移 WSL2 到非 C 盘(推荐)1.3 启用 systemd1.4 WSL 固定 DNS1.4.1 关闭 WSL 自动生成 DNS1.4.2 删除 systemd 生成的 resolv.conf1.4.3 创建新的静态 DNS 文件1.4.4 重启 WSL1.4.5…...

20260318_203310_AI大模型之RAG(向量库milvus实现)

介绍概念:RAG 检索增强生成Retrieval-Augmented Generation 打个比方 普通 AI:像闭卷考试,只会脑子里记的东西,容易记错、过时。 RAG AI:像开卷考试,先去翻你给的课本 / 文档,找到相关内容&am…...

固定资产清查别敷衍!账实对不上、资产流失,全是清查没做细

说起企业资产管理,很多人盯着折旧核算,却忽略了最基础的固定资产清查。这项工作看似繁琐,却是堵住资产流失、校准财务数据、规避税务与内控风险的关键一步,不管是中小企业还是大型公司,定期做规范清查,才能…...

选艺术字体AI工具这件事,别只盯出图快慢

在日常门店运营中,活动海报的艺术字体设计需要兼顾效率和后续修改空间。最近一次促销活动,首版物料我选择了千图的AI艺术字体工具,主要看重其AI海报可编辑和同款生成功能——能够让AI先产出风格方向,再进一步用其抠图、放大、消除…...

Edge浏览器 about:blank 问题修复

打开新标签出现 about:blank 空页面 修改-> 修复 Get-AppxPackage MicrosoftEdge | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "(_.InstallLocation)\AppXManifest.xml"}命令含义解析 这段PowerShell命令的核心作用是重新注册/修复微软Edge…...

根据ai创建校园管理系统——MySQL数据库设计与建立

native效果展示一.DDL语句-- -- 校园二手交易系统 - DDL数据定义语句 -- -- 1. 初始化设置 SET FOREIGN_KEY_CHECKS 0; -- 临时关闭外键检查,避免删表报错 SET NAMES utf8mb4;-- 2. 创建并使用数据库 CREATE DATABASE IF NOT EXISTS campus_second_hand_trade D…...

应用数学新时代的到来

以下内容转载自微信公众号“数学家”,仅作分享 原文链接:https://mp.weixin.qq.com/s/qbnHosCL13TaPSQ9DRih5w 鄂维南,1963年9月生于江苏省靖江市,数学家,中国科学院院士,北京大学、普林斯顿大学教授、北京…...

把AIGC率降到个位数有多爽?2026十款主流免费降AI工具天花板实测

自从2024年各大高校引入AI检测系统后,无数学生陷入了"AI降AI"的死循环:用AI写论文效率高,但查出来就完蛋;手写太慢,赶不上ddl。于是,降低ai率成了比查重更棘手的难题。今天这篇文章,我…...

第6篇:中文语言 学会华夏本源语言能做什么?

第6篇:学会华夏本源语言能做什么? 作者: 大号:华夏之光永存(道级解读) 小号:华夏之光永存小号(术级解读) 核心简介: 道:领域永恒不变的本质规律…...

HTML学习日记——DAY01(基本标签)

今天我正式步入web开发中的html的学习了&#xff0c;今天主要针对HTML的基本标签展开了学习&#xff1a;1.HTML初始的一个标签组成&#xff1a;<!--声明当前文档的类型是html--> <!DOCTYPE html> <!--设置网页语言--> <html lang"en"> <!…...

港中文大学发布PIRA-Bench:AI助手告别被动等待

这项由香港中文大学多媒体实验室、南开大学和华为研究院联合完成的突破性研究发表于2026年3月&#xff0c;论文编号为arXiv:2603.08013v1&#xff0c;标志着人工智能助手从被动响应向主动预测的重大转变。当前的图形用户界面智能助手就像一个严格按指令工作的管家。每当你想让它…...

2026省选联考游记

分数481512150090。 Day1 首先&#xff0c;先花了1个小时时间想出了T1的一个n^3写法&#xff0c;然后&#xff0c;耗时2 ~ 3小时写出该做法&#xff0c;试图用FFT或NTT优化&#xff0c;但忘了FFT如何打&#xff0c;于是花0.5 ~ 1小时写出后两题暴力&#xff0c;然后剩余时间未想…...

02 python阶段大纲介绍

环境搭建安装python解释器 目的 解释python代码&#xff0c;例如print(“hello world”)版本 3.8x及以上版本安装Anaconda数据科学家 pythons解释器python库安装IDE工具 Pycharm , 版本必2023.x及以上基础语法 函数容器类型相关文件操作相关异常处理扩展—递归包和模块 项目 综…...

rchtxchs.dll文件丢失找不到 免费下载修复方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…...

2025 CCF 非专业级软件能力认证 解析

拼数题目描述小 R 正在学习字符串处理。小 X 给了小 R 一个字符串 s&#xff0c;其中 s 仅包含小写英文 字母及数字&#xff0c;且包. 含. 至. 少. 一. 个. 1 ∼ 9 中. 的. 数. 字. 。小 X 希望小 R 使用 s 中的任. 意. 多. 个. 数 字&#xff0c;按任. 意. 顺. 序. 拼成一个正…...

算法设计与分析-习题9.4

目录 1. a.对于下面的数据构造一套哈夫曼编码&#xff1a; b.用a中的编码对文本ABACABAD进行编码。 c.对于 100010111001010用a中的编码进行解码。 2.出于数据传输的目的&#xff0c;我们常常需要一套码长差异最小的编码(在具有相同平均长度的编码中)。针对以下数据构造哈…...

金仓数据库在文档型数据迁移中的实践复盘:从MongoDB协议兼容到政务系统平滑替换

金仓数据库在文档型数据迁移中的实践复盘&#xff1a;从MongoDB协议兼容到政务系统平滑替换 凌晨2:17&#xff0c;监控告警再次触发——电子证照系统“亮证查询”接口响应超时率突破8%&#xff0c;MongoDB从库CPU使用率持续高于95%&#xff0c;慢查询日志中频繁出现多层嵌套的…...

一天一个开源项目(第54篇):Supabase - 开源的 Postgres 开发平台,Firebase 替代方案

引言 “The Postgres development platform. Supabase gives you a dedicated Postgres database to build your web, mobile, and AI applications.” 这是「一天一个开源项目」系列的第 54 篇文章。今天介绍的项目是 Supabase&#xff08;GitHub&#xff09;。 想用 Firebas…...

博弈论详解 3(SG定理的运用)

时隔一年半&#xff0c;主播再次回到博弈论。这次是练习时间&#xff01;&#xff01;&#xff01; 如果你没有学过SG定理或者想要复习一下 如果没有看过之前的前置文章的可以先看零基础知识讲解。 Episode 1&#xff08;Nim基础&#xff09;&#xff1a;https://blog.csdn.n…...

ESP-IDF 简介

ESP-IDF&#xff08;Espressif IoT Development Framework&#xff09;是乐鑫&#xff08;Espressif Systems&#xff09;为 ESP 系列芯片开发的物联网开发框架。它支持 ESP32、 ESP32-S、 ESP32-C 和 ESP32-H 系列 SoC&#xff0c;基于C/C语言提供了一个自给自足的 SDK&#x…...

linux内核 Netfilter

Netfilter 是 Linux 内核中一套模块化、可扩展的网络数据包处理框架&#xff0c;是 iptables、nftables、firewalld 等防火墙工具的底层核心&#xff0c;负责实现数据包过滤、NAT、连接跟踪、流量整形等网络功能。Netfilter 是 Linux 内核内置的网络数据包处理框架&#xff0c;…...

关于 HarmonyOS 版本的简述

1、所有版本 HarmonyOS 已面向开发者发布的所有版本清单如下&#xff1a; 2、推荐开发版本 目前官方推荐使用 6.0.0(20) 版本&#xff0c;配套的工具为 DevEco Studio 6.0.0 Release(6.0.0.858) 版本。6.0.0(20) Release 开发者套件配套信息如下&#xff1a; 3、应用工程…...

OpenClaw 第十三篇:核心技术实现拆解——从指令输入到执行落地的全链路原理

OpenClaw 第十三篇&#xff1a;核心技术实现拆解——从指令输入到执行落地的全链路原理前面十二篇我们聚焦OpenClaw的实操落地&#xff0c;从基础部署、本地自动化&#xff0c;到远程操控、职场场景全覆盖&#xff0c;相信大家已经能熟练用它解决实际问题。但很多技术爱好者、开…...

【数据库】金仓数据库智能SQL防护机制,实现99.99%异常语句精准拦截

文章目录前言一、注入风险&#xff1a;隐藏在输入背后的隐患二、三种模式&#xff1a;构建灵活的“智能准入系统”三、高效、精准、易用&#xff1a;理想的安全防护标准1. 99.99%的识别准确率&#xff0c;近乎“零误判”2. 性能损耗低于6%&#xff0c;业务无感知3. 两步配置&am…...

【JWT】JWT(JSON Web Token)结构化知识体系(完整版)

文章目录JWT&#xff08;JSON Web Token&#xff09;一、基础认知层&#xff1a;定义与核心边界1. 核心定义2. 诞生背景3. 适用与不适用场景二、核心结构层&#xff1a;JWT的标准格式与字段规范1. Header&#xff08;头部&#xff09;2. Payload&#xff08;载荷&#xff09;3.…...

3-1课堂笔记

import os import json import requests from bs4 import BeautifulSoup# 数据采集基础知识&#xff1a;豆瓣读书T250的数据的获取 def getHTML(n):# 获取每一张含有25本书的网页&#xff0c;n为页码-1url "https://book.douban.com/top250"header {"user-age…...

CentOS 7.5/RHEL 7.x 配置 YUM 源(阿里云镜像+本地源双方案)

CentOS 7.5/RHEL 7.x 配置 YUM 源&#xff08;阿里云镜像本地源双方案&#xff09;【实操指南】CentOS 7.5/RHEL 7.x 配置 YUM 源&#xff08;阿里云镜像本地源双方案&#xff09;环境说明前置准备&#xff1a;备份原有 YUM 源方案一&#xff1a;配置阿里云 CentOS 7 镜像源&am…...