Java程序在运行时,需要在内存中分配空间。为了提高效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
Java一共划分了五块区域:
1.栈:存储局部变量。
2.堆:存储new出来的东西。
3.方法区。
4.本地方法区(和系统相关)。
5.寄存器(给CPU使用)。
//注释:有些数据是一次性的,用完就可以销毁的,有些数据后边可能还要多次使用,因此需要做不同的处理。
局部变量:
在方法定义中或者方法声明上的变量,都称为局部变量。
局部变量一出作用域就会释放掉。
堆内存的特点:
1.每一个new出来的东西都有地址值。
2.每个变量都有默认值:
byte,short,int,long:0。
float,double:0.0。
char:'\u0000'。
boolean:false。
引用类型:null。
3.使用完毕就成了垃圾,但是并没有立即回收。会在回收器空闲的时候回收。