内存分配概述
- Java程序为了提高运算效率,就对空间进行了不同区域的划分,因此每一片区域都有特定的处理数据方式和内存管理方式
划分为五个内存空间
- 栈:存储局部变量
栈内存特点
1.数据用完(脱离作用域)就释放
- 堆:存储new出来的东西
堆内存特点
1.每个new出来的东西都有地址值
2.每个变量都有默认值
byte,short,int,long -> 0
float,double -> 0.0
char -> '\u0000'
boolean -> false
引用型 -> null
3.使用完毕就变成了垃圾,但并没有立即回收
会在垃圾回收器空闲的时候回收
- 方法区
- 本地方法区(与系统相关)
- 寄存器(给CPU使用)
Java内存分配图解
一维数组内存分配图解
- 一个
- 两个
- 三个
二维数组内存分配图解
参数传递内存分配图解
创建对象内存分配图解
对象内存分配图解
-
一个
-
两个
-
三个