尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
补充--【Java全栈】 堆栈与创建对象结合的理解
1. 栈内存虚拟机栈 通俗理解就是厨房的临时操作台。每个方法被调用时都会分配一张独立的操作台专业名叫「栈帧」操作台上只放这个方法里的局部变量、参数这些小东西比如基本类型的值、对象的地址方法执行完操作台立刻撤走上面的东西自动清空速度非常快。2. 堆内存 通俗理解就是厨房的大仓库。所有真正的「对象本体」都存在这里比如一杯奶茶、一个用户对象体积大、占空间空间很大东西不会自动消失没人用的对象会由「垃圾回收器」相当于仓库清洁工定期清理掉每个对象在仓库里都有一个唯一的「货架编号」就是内存地址。 区别栈里放的是“小数据、临时数据”基本类型的值、对象的地址引用堆里放的是“完整的大对象”对象本体所有属性的真实值都存在这里。核心拆解一行new代码底层到底做了4件事我们拿这行最常见的代码举例拆成一步一步看每一步都讲清栈和堆分别发生了什么MilkTea tea new MilkTea(珍珠, 12);第1步遇到new→ 堆里先划出内存生成空白对象雏形JVM 先去堆内存大仓库里找一块空闲的位置按照MilkTea类的大小划出一块独立的内存空间生成一个空白的对象雏形。这一步做完的结果内存空间已经分配好了所有属性都会被自动赋予「默认零值」引用类型比如String taste默认是null空什么都没有数字类型比如double price默认是0.0布尔类型默认是false注意这时候还只是个“空壳”还不是一个能正常使用的完整对象此时还完全没调用构造方法。✅ 划重点分配内存、生成空白对象雏形是new指令独立完成的和构造方法无关。第2步调用构造方法 → 给空白对象做装配、初始化空白内存块生成后JVM 会立刻调用你写的构造方法把参数珍珠、12传进去执行构造方法里的赋值、校验等逻辑public MilkTea(String taste, double price) { this.taste taste; this.price price; }执行完之后堆里那个空白对象的属性就被覆盖成了你指定的值taste珍珠price12。✅ 构造方法的真实作用给已经分配好内存的空白对象做初始化、装配属性相当于“出厂灌装”把一个不能用的空壳变成一个真正可用的完整对象。第3步生成对象的唯一内存地址对象初始化完成后会得到它在仓库里的唯一「货架编号」也就是内存地址比如0xabc123这种格式。第4步把地址交给栈里的变量在当前方法的操作台栈内存上创建一个叫tea的变量把刚才的内存地址存进去。 最终状态栈里的tea变量存的是一串地址编号不是奶茶本身堆里的对象存着真实的口味、价格等所有数据是完整可用的tea就像取餐号拿着它就能找到堆里对应的对象。new关键字负责在堆内存分配空间、生成空白对象雏形构造方法负责把这个空白对象装配成真正可用的完整对象。二者分工不同有明确的先后顺序共同完成对象的完整创建。 生活化类比再强化new关键字 工厂的注塑机先吹出一个空白的奶茶杯外壳分配内存、赋默认零值构造方法 灌装工人往空杯子里加茶底、加奶、加珍珠初始化属性、装配完整变量tea 取餐号告诉你成品杯子放在仓库哪个位置你不能说“工人造出了杯子”也不能说“空杯子就是成品奶茶”——空杯是注塑机做的配料是工人装的二者合在一起才做出了一杯能喝的完整奶茶。两个最容易懵的误区误区1tea变量就是对象本身✅ 正解tea只是栈里的一个地址纸条取餐号真正的对象本体在堆仓库里。这也是为什么MilkTea tea2 tea;不会产生新对象——只是抄了一遍取餐号两个变量指向堆里同一个对象改一个另一个会跟着变和之前讲的「引用类型值传递」是同一个底层逻辑。误区2构造方法报错/没执行完对象也已经存在了✅ 正解如果构造方法执行过程中抛出异常这个只分配了内存、但未完成初始化的对象会被 JVM 回收掉最终并不会产生一个可用的对象。这也从侧面说明完整对象的创建是「分配内存 构造初始化」两个步骤共同完成的缺一不可。ps给昨天的创建对象做个补充
RELATED

相关推荐

开源条码识别库zxing-cpp中PDF417角点定位误差分析与算法优化方案

开源条码识别库zxing-cpp中PDF417角点定位误差分析与算法优化方案

开源条码识别库zxing-cpp中PDF417角点定位误差分析与算法优化方案 【免费下载链接】zxing-cpp C port of ZXing 项目地址: https://gitcode.com/gh_mirrors/zx/zxing-cpp 在工业自动化、物流管理和证件识别等应用场景中,PDF417条码作为一种高容量二维条码技术…

📅 2026/10/7 5:25:50
D3KeyHelper:暗黑3玩家的终极智能按键解决方案,告别手指疲劳的完整指南

D3KeyHelper:暗黑3玩家的终极智能按键解决方案,告别手指疲劳的完整指南

D3KeyHelper:暗黑3玩家的终极智能按键解决方案,告别手指疲劳的完整指南 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 还在为…

📅 2026/11/10 13:02:54
Prompt是什么

Prompt是什么

deepseek提示词样例 Prompt Library | DeepSeek API Docs 如何进行大模型调优:遵照提示词样本案例库 提示词(Prompt) Prompt是引导AI模型生成特定输出的输入格式,Prompt的设计和措辞会显著影响模型的响应。 Prompt演化历程 …

📅 2026/10/15 20:47:03
MORE NEWS

更多资讯

📰

低压电工证500题怎么练?学历不高也能考!官方报名入口全在这里

低压电工证500题怎么练?学历不高也能考!官方报名入口全在这里 学历不高怕报不上名?你不是一个人。很多工友都以为只有高学历才能考低压电工证,其实 低压电工证500题…

📰

衡阳考电工证培训内部消息:工地太忙根本没时间复习考试怎么破?

衡阳考电工证培训内部消息:工地太忙根本没时间复习考试怎么破? 工地太忙根本没时间复习考试,这是很多一线电工的真实写照。尤其是那些在衡阳地区从事建筑、电力施工、设备安装的从业者,手里握着电工证,但真正能考过的却不多。 内部消息…

📰

特种工考证段老师解析2026河南最新政策:电工焊工证考前必看

特种工考证段老师解析2026河南最新政策:电工焊工证考前必看 你是不是也经常听说, 特种作业证 是找工作的“敲门砖”?在河南,尤其是平顶山这样的建筑大市,没有电工、焊工、高处作业等特种作业证,别说进工地,连面试资格都没有。2026年河南最新…

📰

电工证加多少入学积分保姆级教程怎么报名不被坑

电工证加多少入学积分保姆级教程怎么报名不被坑 你是不是也这样?不知道去哪报名电工证,怕被中介坑,花了钱还拿不到证?别急,这篇保姆级教程帮你从头理清流程,告诉你电工证到底值多少钱,加多少入学积分,怎么报名才不被坑,还能了解电工证对工资和职业发…

📰

重庆北碚区办理电工证网上查询别踩坑 这些实操考试避坑指南收好

重庆北碚区办理电工证网上查询别踩坑 这些实操考试避坑指南收好 实操考试心里没底怕挂科?在重庆北碚区办理电工证的学员,很多人都遇到过这种情况。特别是在初次报考时,对考试流程、题型设置、操作标准不了解,很容易被细节绊住,甚至因为一个小失误直接挂…

📰

电工证怎么查真伪鉴别 2026河南最新政策解读

电工证怎么查真伪鉴别 2026河南最新政策解读 学历不高怕报不上名?别担心,电工证报考门槛其实比你想的低。特别是2026年河南最新政策出台后,针对学历要求进行了优化,让更多人能顺利走上特种作业这条路。今天我们就来聊聊电工证怎么查真伪鉴别,同…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬