JAVA中的内存分配及栈与堆的区别

JAVA程序为提高效率,就对数据空间进行了不同的分配

具体分为如下5个内存空间:

1、栈:存放局部变量

2、堆:存放所有new出来的东西个

3、方法区:存放方法

4、本地方法区:和系统相关

5、寄存器:CPU使用


栈内存的数据用完就释放掉

例:{

int a=100;

System.out.println(a);

}

堆内存的特点:

A:每个new出来的东西都有地址值

B:每个变量都有默认值

     byte,short,int ,long 默认0              float,double默认0.0         

  char默认‘\u0000’         boolean 默认false           引用类型默认null

C:使用完毕后就变成了垃圾,但没有立即回收,会在垃圾回收器空闲时回收

例:java中的GC就像学校中的清洁工,会挨个教师清理

而C++中的GC则是专一的,可随时清理想清理的


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值