news 2026/6/13 2:12:55

AI全栈开发 - Java:基本数据类型 vs 引用数据类型的内存存储

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI全栈开发 - Java:基本数据类型 vs 引用数据类型的内存存储

Java 中的基本数据类型和引用数据类型在内存中的存储是怎样的呢?

1. 基本数据类型(Primitive Types)

包含:byte,short,int,long,float,double,char,boolean

存储过程:

  • 存储位置:栈(Stack)
  • 变量的值直接存储在栈内存中
  • 声明时直接分配固定大小的内存空间(大小由类型决定,如int占 4 字节)
  • 栈内存由系统自动管理,方法执行完毕即释放
栈内存: ┌─────────────┐ │ int a = 10 │ ← 直接存储值 10 ├─────────────┤ │ double b=3.14│ ← 直接存储值 3.14 └─────────────┘

特点:访问速度快、生命周期由作用域控制、赋值是值拷贝

2. 引用数据类型(Reference Types)

包含:类(class)、接口(interface)、数组([])、枚举(enum

存储过程(分两步):

  1. 栈(Stack):存储引用变量(即对象的内存地址,类似指针)
  2. 堆(Heap):存储对象的实际数据
栈内存: 堆内存: ┌─────────────────┐ ┌──────────────────┐ │ Person p = 0x123│──地址指向──→ │ name = "张三" │ └─────────────────┘ │ age = 25 │ │ ... │ └──────────────────┘

赋值时的区别:引用类型赋值传递的是地址,多个引用可指向同一对象

Personp1=newPerson("张三",25);Personp2=p1;// p2 和 p1 指向同一个堆对象p2.setName("李四");// p1.getName() 也会变成 "李四"

3. 关键对比总结

对比维度基本数据类型引用数据类型
栈存储值本身地址(指针)
堆存储实际对象数据
赋值行为值拷贝(独立)地址拷贝(共享)
== 比较比较值比较地址(是否同一对象)
默认值有固定默认值(如 0, false)null
垃圾回收方法结束自动释放GC 回收无引用的堆对象

一句话总结:基本数据类型“人就在栈里”,引用数据类型“栈里只是门牌号,人住在堆里”

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

鸿蒙 + Flutter 下如何管理 AI 会话——AgentService 设计解析

适合谁看正在给鸿蒙 Flutter 应用接 AI 会话的人想把模型调用从页面层抽出来的人想理解移动端(尤其是鸿蒙端)AI 会话管理该收在哪一层的人想了解 AgentService 如何和协调器、工具层、鸿蒙原生能力协作的人问题背景很多 AI 页面初版都会直接这样写&#…

作者头像 李华
网站建设 2026/6/13 2:12:39

3步彻底解放双手:i茅台自动预约系统终极指南

3步彻底解放双手:i茅台自动预约系统终极指南 【免费下载链接】campus-imaotai i茅台app自动预约,每日自动预约,支持docker一键部署(本项目不提供成品,使用的是已淘汰的算法) 项目地址: https://gitcode.c…

作者头像 李华