一.数组
1.概念:
存储同一种数据类型的多个元素的容器
2.定义格式:
A.数据类型[] 数组名;(推荐的方式)
B.数据类型 数组名[];
3.数组的初始化:
A.所谓的初始化,就是为数组开辟内存空间,并为数组中的每个元素赋予初始值
B.两种初始化
a.动态初始化 只给出长度,系统给出初始化值
int[] arr = new int[数组长度];
数组长度其实就是数组中元素的个数
b.静态初始化 给出初始化值,系统决定长度
格式:
int[] arr = new int[]{1,2,3};
简化:
int[] arr = {1,2,3};
注意:
数组索引从零开始,最大值是数组长度减1;
数组中每个元素的初始化值为0;
4.java中的内存分配:
A.栈:存储的是局部变量,局部变量就是定义在方法中的变量
使用完毕后立即回收
B.堆:存储的是new出来的东西(实体,对象)
a.每一个对象都有地址值
b.每一个对象的数据都有默认值
byte,short,int,long 0
float,double 0.0
char'\u0000'
boolean false
引用类型 null
c.使用完毕后,会在垃圾回收器空闲的时候回收
C.方法区
D.本地方法区(和系统相关)
E.寄存器(给CPU使用)
5.数组的赋值
int[] arr1 = arr;数组的地址赋值
arr[索引] = 10;给数组中对应的元素赋值
6.数组操作中两个常见小问题
A.数组越界异常;
产生的原因:访问了不存在的索引
B.空指针异常;
产生的原因:数组已经不再指向堆内存的数据了,你还使用数组名去访问元素
7.数组遍历
依次输出数组中的每一个元素
数组元素个数:数组长度 - 1;arr.length - 1
二.二维数组
1.概念:其实就是元素为一维数组的数组
2.定义格式
A.数据类型[][] 数组名;(推荐的方式)
B.数据类型 数组名[][];
C.数据类型[] 数组名[];
3.初始化
A.动态初始化
数据类型[][] 数组名 = new 数据类型[m][n];
m表示的是二维数组中一维数组的个数
n表示的是一维数组中的元素个数
B.静态初始化
数据类型[][] 数组名 = new 数据类型{{元素},{元素},...}
简化格式:
数据类型[][] 数组名 = {{元素},{元素},...}
注意:
简写形式有局限性,数组的声明与赋值分开写的时候,简写形式行不通了
4.一维数组与元素的获取
A.二维数组名配合索引可以获取到每一个一维数组
B.每一个一维数组配合索引可以获取到数组中的元素
arr[索引][索引];得到二维数组中的元素
5.二维数组.length获取的其实就是二维数组中有几个一维数组
|
|