栈、堆内存到底是如何申请的,方法是如何入栈出栈的——内存结构理解学习

本文探讨了计算机内存的三个主要区域:静态区、堆和栈。详细介绍了静态变量、动态变量(通过new创建的对象)以及局部变量在内存中的分配和管理。通过分析Java代码示例,解释了对象创建、方法调用过程中的内存分配,以及栈中对象指针和变量的入栈、出栈操作。最后提到了内存回收,特别是栈上变量在不再使用时的出栈过程。
摘要由CSDN通过智能技术生成

Lee出品,转载请注明出处http://blog.csdn.net/hnulwt/article/details/42934365

对于软件开发者而言,理解和熟悉计算机内存知识是很基础的。今天我就来翻翻旧账,回顾看看有哪些点遗漏了,在此共同学习。

提起内存,我们常常想到三个区域:

1,静态区,静态变量 static variables / constant  ,常量,静态变量就存储在静态区域,这个区域比较简单,只需要知道怎么通过地址访问他就行了。

2,堆 动态变量 关键字new 。通过new 创建的对象,会存储在堆中。 java中当new的对象不再被引用时候,垃圾回收器就会在适当的时候回收这部分内存。在C/C++中则需要手动释放。

3,栈,,也叫堆栈(这里要注意堆栈 和 栈 是不同的)局部变量 创建的值会存储在栈中。

我们看看计算机中静态区域、堆、栈在内存中图示:


我们试着来分析一段Java代码,来看看内存究竟是如何分配的。

先看看代码,代码很简单:

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值