数组是用来存储一堆具有固定大小的相同类型元素
一维数组一维数组声明
java中声明数组时不能指定长度
int [] arr; //java中推崇的风格 int arr []; // c与c#中推崇的风格,强烈建议java风格创建数组
创建数组对象会在内存中开辟一整块连续的空间,数组名中引用的是这块连续空间的首地址;一旦arrysize确定,就不能更改。
数组是引用类型数据,要使用new来创建
arr = new datatype[arrysize]; arr = new int [5]; // 创建了一个长度为5的数组,并将数组赋值给arr arr[1] = 0; arr[2] = 2; ...数组的动态初始化与静态初始化
动态初始化:声明数组并为数组分配空间与数组赋值分开进行
静态初始化:定义数组的同时为数组分配空间并赋值
// 动态初始化 int [] arr = new int[3]; arr[0] = 3; arr[1] = 4; arr[2] = 5; // 静态初始化 int [] arr1 = new int[]{1,2,3}; // 或者 int [] arr1 = {1,2,3};数组只有定义并用new分配空间后才能引用
数组下标或索引为0—arry.length-1
数组元素的默认初始化值
对于引用类型默认初始化值为null
对于基本数据类型而言,默认初始化值略有不同
数据类型 默认初始化值byte 0
short 0
int 0
char 0或'\u0000'(表现为空)
long 0L
float 0.0F
double 0.0
Boolean false
引用数据类型 null
二维数组
从计算机底层来看其实并没有二维数组或多维数组的概念,二维数组可以看作N个一维数组作为另一个一维数组的元素
动态初始化:
// 方案1 int [][] arr = new int [3][4]; /* 定义了一个名为arr的数组 该二维数组中包含3个一维数组 每个一维数组的长度都为4 */ // 如要对第一个一维数组的第一个元素赋值可以这样 arr [0][0] = 78; // 方案2 int [][] arr = new int [3][]; /* 二维数组中有三个一维数组 每个以为数组默认初始化值都是null与方案1不同 可以分别对每个一维数组进行初始化 */ arr[0] = new int[2]; arr[1] = new int[3]; arr[2] = new int[4];静态初始化:
int [][] arr = new int[][]{{1,2,3},{3,2,5},{65,7}} /* 定义一个名称为 arrarr 的二维数组 二维数组中有三个一维数组,每一个维数组中具体元素也都已初始化 第一个维数组 arrarr [0] = {1,2,3}; 第二个一维数组 arrarr [1] = {3,2,5}; 第三个一维数组 arr [2] = {65,7}; 第三个一维数组的长度表示方式: arrarr [2].length; */奇奇怪怪的写法
int [] x,y[]; // x 是一维数组,y是二维数组,定义时有省略,比如 int a = 10,b = 10;