黄岩建设局台州网站建设wordpress查询excel
2026/4/6 9:31:10 网站建设 项目流程
黄岩建设局台州网站建设,wordpress查询excel,网站建设资源kindle,如何做外贸营销型网站关注我们,设为星标,每天7:30不见不散,每日java干货分享 在计算机的内存世界里#xff0c;数据只有两个去处#xff1a;要么去 栈 (Stack)#xff0c;要么去 堆 (Heap)。 虽然它们都叫“内存”#xff0c;但待遇天差地别。一个像是军队的内务#xff0c;整齐划一#xff0…关注我们,设为星标,每天7:30不见不散,每日java干货分享在计算机的内存世界里数据只有两个去处要么去栈 (Stack)要么去堆 (Heap)。虽然它们都叫“内存”但待遇天差地别。一个像是军队的内务整齐划一但空间狭小一个像是富豪的杂物间随地乱放空间巨大。理解了它们你就能听懂 Java 里的那句黑话“对象在堆里引用在栈里。” 一、技术分析秩序与自由的权衡1. 栈 (Stack) —— 先进后出的“弹夹”•特性:LIFO (Last In First Out)。就像一把手枪的弹夹最后压进去的子弹必须最先打出来。•存什么:•局部变量:int a 10;•方法调用链:main()调funcA()funcA()调funcB()。•管理:自动管理。函数执行完系统自动“弹出”内存不需要你操心。•速度:极快。CPU 只需要移动指针ESP就能分配和回收内存。•大小:很小通常几 MB。2. 堆 (Heap) —— 自由散漫的“广场”•特性:无序、动态。就像一个巨大的广场你想在哪里搭帐篷就在哪里搭。•存什么:对象 (Object)。凡是new出来的东西new User(),new int[10000]都在这里。•管理:手动管理C/C 需要free或GC 管理Java/Python 有保洁员。•速度:较慢。分配内存需要找空地访问内存需要通过指针跳转。•大小:很大取决于你的物理内存几 GB 甚至几十 GB。 二、故事场景收纳盒与杂物间为了彻底搞懂这两者的关系我们将内存比作你的家。1. 栈 (Stack) —— “放在手边的收纳盒”•场景: 你坐在书桌前工作执行函数。•规则: 书桌空间很小你只能放最常用的东西。•操作:•函数调用: 你开始写作业 A。你在书桌上铺了一张纸压栈。•嵌套调用: 作业 A 需要用到作业 B 的数据。你又拿出作业 B 的纸盖在A 上面。•再嵌套: 作业 B 需要作业 C。你把 C 的纸盖在B 上面。•执行完毕: C 做完了你把 C 的纸扔掉弹栈露出下面的 B。•特点: 永远只能处理最上面那一层。非常有条理绝对不会乱。2. 堆 (Heap) —— “巨大的杂物间”•场景: 你需要组装一辆自行车创建一个大对象。•问题: 书桌栈太小了根本放不下自行车。•操作:• 你走到宽敞的杂物间 (Heap)找块空地把自行车组装好。•关键步骤: 你回到书桌前在纸上写下一行字“自行车在杂物间 A 区 3 排”。• 这行字内存地址/引用是在栈里的。• 自行车本身是在堆里的。 三、两大经典灾难1. StackOverflowError (栈溢出)•场景:无限递归。•故事:• 你讲了个故事“从前有座山山里有座庙庙里有个老和尚讲故事‘从前有座山山里有座庙...’”• 你每讲一次就往书桌上铺一张纸。• 讲到第 10000 次时书桌上的纸摞到了天花板轰的一声倒了。•原因: 函数调用层级太深超出了栈的深度限制。2. OutOfMemoryError (OOM - 堆溢出)•场景:囤积癖。•故事:• 你疯狂地买自行车new Object买一辆就扔进杂物间。• 杂物间虽然大但也有塞满的时候。• 如果你光买不扔没有被 GC 回收最后杂物间连一只脚都插不进去了。•原因: 创建了太多对象且都在被使用无法回收把堆撑爆了。 四、巅峰对决为什么需要两个维度栈 (Stack)堆 (Heap)比喻收纳盒杂物间存储内容局部变量、引用指针new出来的对象、实体访问速度极快(CPU亲儿子)较慢(需要查地址)空间大小小(MB 级别)大(GB 级别)生命周期函数结束自动释放等待 GC 回收溢出报错StackOverflowErrorOutOfMemoryError 五、总结指针的羁绊在 Java/C 中栈和堆不是割裂的它们通过“引用” (Reference/Pointer)紧紧联系在一起。User user new User();这行简单的代码其实横跨了两个世界1.左边User user**: 是一个引用**小纸条存在栈里。2.右边new User()**: 是一个对象**大自行车存在堆里。3.: 是一根红线把栈里的纸条指向了堆里的自行车。一句话总结栈是运行时的单位处理逻辑堆是存储的单位存放数据。推荐阅读 点击标题可跳转50个Java代码示例全面掌握Lambda表达式与Stream API16 个 Java 代码“痛点”大改造“一般写法” VS “高级写法”终极对决看完代码质量飙升为什么高级 Java 开发工程师喜爱用策略模式精选Java代码片段覆盖10个常见编程场景的更优写法提升Java代码可靠性5个异常处理最佳实践为什么大佬的代码中几乎看不到 if-else因为他们都用这个...还在 Service 里疯狂注入其他 Service你早就该用 Spring 的事件机制了看完本文有收获请转发分享给更多人关注「java干货」加星标提升java技能❤️给个「推荐 」是最大的支持❤️.cls-1{fill:#001e36;}.cls-2{fill:#31a8ff;}.cls-1{fill:#001e36;}.cls-2{fill:#31a8ff;}.cls-1{fill:#001e36;}.cls-2{fill:#31a8ff;}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询