栈
局部变量存储区域;变量所处的作用域结束则自动释放其所占内存,由JVM自动回收
堆
数组和对象(数组其实就是对象),new建立的都是在堆中
区别:栈存变量,一个变量只能存放一个数据,一旦数据丢失,则直接失效
堆存放实体,实体可以封装多个数据,一个数据丢失并不会导致实体失效
堆中每一个实体都有一个首地址值;
堆里面的实体都会有默认值,比如int 默认是0,float默认0.0f,boolean默认是false,char默认'\0000';
垃圾回收机制
PS:内存的划分:
1.寄存器–给CPU的
2.本地方法区–和系统相关,调用的不同的操作系统中的方法
3.方法区–加载技术相关
4.栈内存
5.堆内存