讲师中心 微信公众号
AI工具推荐 视频效率加速

Java 基本类型内存占用与 JVM 内存分配图解实战指南

星敏小哥_6164

星敏小哥_6164

发布时间:2026-06-30 13:03:50

|

742人浏览过

|

来源于php中文网

原创

Java基本类型不占堆内存,其值直接存于栈帧局部变量表或作为对象字段嵌入堆中;byte/boolean占1字节,short/char占2字节,int/float占4字节,long/double占8字节,无对象头、不参与GC。

java 基本类型内存占用与 jvm 内存分配图解实战指南

Java 基本类型本身不“占堆”,它们的值直接存放在栈帧的局部变量表里,或作为对象字段嵌入在堆中;理解这点,才能真正看懂 JVM 内存分配图。

基本类型内存占用:固定字节,无对象开销

Java 的 8 种基本类型(byte、short、int、long、float、double、char、boolean)在内存中占用空间是明确且固定的:

  • byte / boolean:规范未强制规定 boolean 占用大小,但 JVM 实际实现中通常按 1 字节处理(尤其在数组中);byte 明确为 1 字节
  • short / char:各占 2 字节
  • int / float:各占 4 字节
  • long / double:各占 8 字节

注意:它们没有对象头、没有引用指针、不参与 GC。比如声明 int x = 42;,这个 42 就直接写进当前方法栈帧的局部变量表 slot 中,不产生任何堆内存申请。

基本类型在 JVM 中的存放位置:栈 vs 堆

存放位置取决于变量的“作用域和声明方式”:

立即学习“Java免费学习笔记(深入)”;

Java Maven Code Review
Java Maven Code Review

审查Java Maven项目(ZIP压缩包或GitLab仓库URL),检查代码规范、命名、模块边界、可维护性问题以及重复代码。

下载
  • 方法内定义的局部变量(如 void foo() { int a = 1; })→ 存于Java 虚拟机栈的局部变量表中,随方法调用入栈、返回出栈
  • 对象的成员变量(如 class A { int id; })→ 和对象实例一起,被分配在堆内存中,属于该对象的实例数据部分
  • static 修饰的变量(如 static int count;)→ 存于方法区(元空间)的静态变量区域,与类绑定,生命周期同类加载/卸载

关键点:基本类型本身不会“在堆上单独分配”,它要么在栈上独占 slot,要么作为对象的一部分“寄生”在堆中——永远不独立拥有对象结构。

图解核心内存区域与基本类型的映射关系

一张简明的运行时内存划分图可这样理解:

  • 程序计数器:线程私有,记录执行位置,不存基本类型值
  • Java 虚拟机栈:每个方法对应一个栈帧;局部变量表存基本类型值(int, char等)和对象引用(Object ref),其中 long/double 占两个连续 slot
  • 堆:只存对象实例和数组;基本类型若为对象字段,则和对象头、对齐填充一起打包存储;例如 new Integer(100),堆中存的是整个 Integer 对象(含对象头 + value 字段 + 对齐填充),而 value 就是那个 4 字节的 int
  • 方法区(元空间):存类结构、常量池、静态变量;static final int MAX = 100; 的 MAX 值就在这里(编译期常量还可能直接内联到字节码)

图示中不必画“int 单独一块内存”,而应体现:栈里放值,堆里放“含值的对象”,方法区放“属于类的值”。

实战建议:避免常见误解

写代码和排查问题时,记住这几个易错点:

  • 不要说“int 在堆里分配”——除非它是某个对象的字段
  • 不要混淆 int 和 Integer:前者是纯值、无 GC;后者是对象、有头、可 null、会进堆、受 GC 管理
  • 局部变量表大小在编译期就确定,运行时不扩容;方法参数和显式声明的变量共同占用 slot,可通过 javap -v 查看 Code 属性中的 max_locals
  • 使用 -Xss 调整栈大小时,影响的是整个栈帧容量(含所有基本类型 slot + 引用 + 操作数栈),不是单个 int 的大小

真正影响内存效率的,不是 int 占 4 字节这件事,而是你是否无意中把大量基本类型包装成对象、或让本可栈存的数据被迫逃逸到堆上。

热门AI工具

更多
墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

相关专题

更多
java
java

Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

9757

2023.06.15

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

6902

2023.07.05

java自学难吗
java自学难吗

Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。

6092

2023.07.31

java配置jdk环境变量
java配置jdk环境变量

Java是一种广泛使用的高级编程语言,用于开发各种类型的应用程序。为了能够在计算机上正确运行和编译Java代码,需要正确配置Java Development Kit(JDK)环境变量。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1064

2023.08.01

java保留两位小数
java保留两位小数

Java是一种广泛应用于编程领域的高级编程语言。在Java中,保留两位小数是指在进行数值计算或输出时,限制小数部分只有两位有效数字,并将多余的位数进行四舍五入或截取。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

888

2023.08.02

java基本数据类型
java基本数据类型

java基本数据类型有:1、byte;2、short;3、int;4、long;5、float;6、double;7、char;8、boolean。本专题为大家提供java基本数据类型的相关的文章、下载、课程内容,供大家免费下载体验。

1276

2023.08.02

java有什么用
java有什么用

java可以开发应用程序、移动应用、Web应用、企业级应用、嵌入式系统等方面。本专题为大家提供java有什么用的相关的文章、下载、课程内容,供大家免费下载体验。

2549

2023.08.02

java在线网站
java在线网站

Java在线网站是指提供Java编程学习、实践和交流平台的网络服务。近年来,随着Java语言在软件开发领域的广泛应用,越来越多的人对Java编程感兴趣,并希望能够通过在线网站来学习和提高自己的Java编程技能。php中文网给大家带来了相关的视频、教程以及文章,欢迎大家前来学习阅读和下载。

19891

2023.08.03

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

80

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
dev.java 官方:Learn Java
dev.java 官方:Learn Java

共0课时 | 0人学习

Java JDBC数据库连接官方教程
Java JDBC数据库连接官方教程

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn