数组
数组概念
数组是存储同一种数据类型多个元素的集合,也可以看成是一个容器;
一维数组定义格式
数据类型[ ] 数组名 = new 数据类型[数组的长度];
一维数组初始化
- 动态初始化:只指定长度,由系统给出默认初始化值;
int[] arr = new int[5];
整数类型:byte、short、int、long默认初始化值是0;
浮点类型:float、double默认初始化值是0.0;
布尔类型:boolean默认初始化值是false;
字符类型:char默认初始化值是’\u0000’;
char 在内存中占两个字节,是16个二进制位,\u0000,每个0其实代表的是16进制的0,那么四个0代表的就是16个二进制位;
引用数据类型:初始值为null;
int[] arr = new int[5];
arr : [I@19bb25a;//数组首地址
其中:
[ 代表是数组,几个就是几维;
I 代表是int类型;
@ 是固定的;
19bb25a代表的是16进制的地址值;
- 静态初始化:给出初始化值,由系统决定长度;
java中内存分配
- 栈 :存储局部变量
局部变量:定义在方法声明上和方法中的变量; - 堆:存储new出来的数组和对象;
- 方法区
- 本地方法区:和系统相关
- 寄存器:给CPU使用
上图为:一个数组内存图
上图为:三个引用两个数组图
静态初始化一维数组
- 格式
数据类型[] 数组名 = new 数据类型[ ] {元素1,元素2,.....};
- 简化格式
数据类型[] 数组名 = {元素1,元素2,....};
- 静态初始化的内存分配
int[] arr后,会在堆内存空间中开辟一片连续的地址空间,并初始化值为空间中每个元素值为0,之后再根据{11,22}进行显示赋值;
int[] arr;
arr = new int[] {
11,22};//非简化格式可以先声明再赋值
int