栈内存和堆内存

本文详细解释了程序中栈内存和堆内存的概念及其区别。栈内存主要用于存储局部变量,使用完毕后自动释放;堆内存则用于存储数组、对象及全局变量,由垃圾回收机制进行管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在平时写代码的时候经常遇到一些很简单但是自己却不太理解的问题,于是整理了一下。

内存:一般情况下我们分为栈内存堆内存。下面我们来说说它们的区别。

一、栈内存:用于存储局部变量,当数据用完的时候,它所占用的空间会自动释放。

public class demo1 {
	public int xxx(int i)
	{
	   int j=0;
	   for(int m=0;m<0;)
	   {
	      int n;
	   }
	   return j+i;//这里的 i j m n j+i 都是属于局部变量
	}
}

二、堆内存:一般是储存数组对象(就是通过new program() 创建的实例化)和全局变量

      特点是每一个实体都要其对应的地址值,并且实体中的变量都有其对应的默认初始化值(例:int[] 默认是       0,Boolean[] 默认是false,否就为null),当实体不被使用的时候,会在一个不确定的时间被回收机制自动处理。

public class demo1 {
	static int i;		 //此处i就是一个全局变量,所以不用初始化赋值
	public static void main (String[] args){
		int [][]arr = new int[3][];
		System.out.print(arr[0]);//这里输出为null,没有输出地址值,因为我们并没有去初始化这个二维数组
		arr[0] = new int[1];	 //手动初始化,有了地址值	
		System.out.print(arr[0]);//输出地址值}
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值