数组是相同类型数据的有序结合。数组描述的是相同类型的若干类型,按照一定的先后顺序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问他其元素。
数组的三个基本特点:
1.长度确定,一旦被创建,大小不可改变。
2.其元素必须是相同类型,不允许出现混合类型。
3.数组类型可以是任何类型,包括基本类型和引用类型。
数组变量属于引用类型,数组也是对象,数组中的每个元素相当于对象的成员变量。
若声明了一个长度为10的int类型的数组,内存动态如下:

public class TestArray {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr01=new int[10]; //创建一个长度为10(length)的int类型的数组,索引下标0~9
String arr02[]=null; //数组的声明方式
/*逐赋值法
arr01[0]=13;
arr01[1]=16;
arr01[2]=18;*/
//arr01[12]=19;
//若超越索引下标,编译正确,运行会报错,数组越界ArrayIndexOutOfBoundsException:12
/*循环初始化数组并读取元素值*/
for(int i=0;i<arr01.length;i++){
arr01[i]=10+i;
System.out.println(arr01[i]);
}
User2[] arr03=new User2[3];
arr03[0]=new User2(1706,"aa");
arr03[1]=new User2(1707,"ab");
arr03[2]=new User2(1708,"ac");
for(int i=0;i<arr03.length;i++){
System.out.println(arr03[i].getName());
}
}
}
class User2{
private int id;
private String name;
/*构造方法*/
public User2(int id, String name) {
super();
this.id = id;
this.name = name;
}
/*写get、set方法*/
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}


数组的初始化方式有3:静态初始化、动态初始化、默认初始化