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则是专一的,可随时清理想清理的