1.Java数组初始化操作方法,分为静态初始化和动态初始化,
(1)静态初始化:
格式:
//初始化数组变量
//第一种初始化数组变量方法
type[ ] 数组变量;
//第二种初始化数组方法
type 数组变量[ ];
//初始化数组元素
数组变量名 = new type[ ] {value1, value2....}
2.其中type可以是父类型指向父类型,也可以是父类型指向子类型,子类型指向子类型
(1)父类型指向父类型:
Object[ ] 数组变量;
数组变量 = new Object[ ]{value1,value2....}
(2)父类型指向子类型,其中子类型可以是数值类型、字符串类型、布尔类型、对象类型都可以:
Object[ ] 数组变量;
//这里只是使用String作为子类型进行比较
数组变量 = new String[ ];
(3)子类型指向子类型(数值类型、引用类型、布尔类型、对象类型):
int[ ] 数组变量;
数组变量 = new int[ ]{value1,value2.....}
(4)初始化与数组变量直接放在一起:
type[ ] 数组变量 = new type[ ]{value1,value2,value3.....}
3.动态初始化格式
type[ ] 数组变量;
数组变量 = new type[length];
(1)动态初始化方法基本与静态初始化方式一样,有以上几种方式可以进行.
(2)还有一种只支持动态初始化的方法,多的这种动态初始化方法如下:
var[ ] 数组变量 = new type[length];
数组变量 = {value1,value2...}
4.每种数据类型初始化方法之后系统会为他们赋上默认值
(1)数值类型,byte、short、int、long默认值是0;
(2)浮点类型,double、float默认值是0.0;
(3)Boolean类型默认值是false;
(4)char类型默认值是' ';
(5)引用类型,String、类都是null。
5.一维数组在内存当中的分配情况:
(1)初始化数组变量之后,数组变量是在栈区存储的;
(2)数组元素是存储在堆内存当中的。
假设:
person[ ] student;
student = new person[]{“小明”,"小红","小黄"}
6.二维数组格式:
type[ ][ ] 数组变量;
数组变量 = new type[length][ ];
二维数组实际上也是一维数组,可以看成是一维数组,只是在一维数组的基础上,数组元素是引用,指向新的数组type[ ],所以对他的数组元素还要进行初始化才可以,其中length标识创建的一维数组的长度;
例子:
//初始化汽车数组对象
CarInfo[ ][ ] Car;
//创建一个长度为3的数组变量
Car = new[3][ ];
//输出一维数组元素变量,都为null,因为一维数组元素都是引用
for(int i = 0 ;i < Car.length; i++){
System.out.println(Car[i]);
}
//为数组第一个元素初始化长度为3
Car[0] = new CarInfo[3];
//为数组的第一个元素的引用第二个元素赋值为5
Car[0][1] = 5;
//循环输出第一个数组元素的元素索引的值
for(int j = 0;j < Car[0].length; j++){
System.out.println(Car[0][j]);
}