目录
JAVA内存分配
一、一维数组
1、一维数组定义:
一维数组是一种容器,用于存放相同数据类型的众多值。
2.、一维数组的初始化:
1.静态初始化:手动指定元素,系统根据数组中元素的个数确定数组的长度
//完整格式:数据类型[] 数组名 =new 数据类型[]{元素1,元素2,.....,元素n}
int[] arr=new int[]{11,22,33,44,55};
//简化格式:数据类型[] 数组名 ={元素1,元素2,.....,元素n}
int[] arr={11,22,33,44,55};
2.动态初始化:手动指定数组长度,系统默认分配初始值
int[] arr=new int[10];
默认值:
整数:0;
小数:0.0;
布尔:false;
字符:'\u0000'(采用Unicode字符集,常见的显示位空白字符);
引用数据类型:(数组,类(String),接口):null;
二、二维数组
1、二维数组的定义
二维数组是一种容器,用于存放一维数组。
2、二维数组的初始化
1.静态初始化
// 完整格式:数据类型[][] 数组名 =new 数据类型[][]{{元素1,元素2,.....,元素n},{元素1,元素2,.....,元素n},{元素1,元素2,.....,元素n}}
int[][] arr=new int[][]{{11,22,33},{44,55,66},{77,88,99}};
// //简化格式:数据类型[] 数组名 ={{元素1,元素2,.....,元素n},{元素1,元素2,.....,元素n},{元素1,元素2,.....,元素n}}
int[][] arr={{11,22,33},{44,55,66},{77,88,99}};
2.动态初始化
//数据类型[][] 数组名 =new 数据类型[m][n];
int[][] arr=new int[2][3];
//m:表示二维数组可以存放多少个一维数组;
//n:表示每一个一维数组可以存放多少个元素;
注意:二维数组的m索引表示每一个所对应一维数组的首地址,故可以将创建的一维数组赋值给二维数组
int[] data1={1,2,3}; int[] data2={4,5,6}; int[][] data=new int[2][3]; data[0]=data1; data[1]=data2;
3.二维数组的遍历
data.length实际为二维数组的行数,即一维数组的个数,data[i].length实际为一维数组的长度
int[][] data={{11,22,33},{44,55,66},{77,88,99}};
for (int i = 0; i < data.length; i++) //获取每一个一维数组data[i]
{
for (int j = 0; j < data[i].length; j++) //获取每一维数组中的每一个元素
{
System.out.println(data[i][j]);
}
}
//data[m][n];
//m索引:指定访问哪一个一维数组;
//n索引:指定访问一维数组中的哪一个元素;
三、数组中的常见错误
1.ArrayIndexOutOfBoundsException
数组索引越界异常:访问不存在的数组索引
2.NullPointerException
空指针异常:当引用数据类型的变量被赋值为null后,就代表数组与堆内存的连接被切断,此后如果访问堆内存中的数据会出现空指针异常