概念:用于存储同一数据类型的多个元素[容器]
声明格式:数据类型[] 变量名;
初始化:
1. 静态初始化
- 数据类型[] 数组名 = new 数据类型[]{元素一,元素二,元素三....}
- 简化格式: 数据类型[] 数组名 = {元素一,元素二,元素三....}
简化格式存在的弊端:
int[] array3;
array3 = {1, 2, 3};
会导致编译失败。
2. 动态初始化
数据类型[] 数组名 = new 数据类型[数组长度];
Java的内存模型:
在JVM运行Java程序时,为了更好的管理内存,对内存做了分区。
分区:
栈:运行方法使用,记录方法运行时需要一些数据。
堆:用于存储所有new申请的内存。
方法区:用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据,方法编译出的的字节码就是保存在这个区域。
程序计数器:记录程序当前的行号。
本地方法栈: 执行native方法时使用。
静态初始化和动态初始化的区别
静态初始化:
数组初始化完毕, 每个索引处存储的是初始化时指定的值
动态初始化:
数组初始化完毕,每个索引处存储的是指定类型的默认值
在堆内存中,所有的数据都有默认值
整型: 0
浮点型:0.0
布尔型: false
字符型: 空字符
引用类型: null