为了方便储存相同类型的数据,不用对多个数据的类型在进行多次定义
数组是相同数据类型的一个集合
T [] 数组名=new T[N];
int[] array1=new int[3];//表示可以容纳三个整形类型的元素的数组,默认值都为0数组的初始化分为静态初始化和动态初始化
动态初始化:在创建数组时,直接指定数组元素的个数
int[] array1=new int[3]//元素值都默认为0静态初始化:在创建数组时,不直接指定数组元素的个数,而直接将具体的数据内容进行指定
int[] array={1,2,3};
int[] array2=new int[]{1,2,3};

我们知道数组的空间是连续的,每一块空间都有自己的编号,编号由0开始,依次递增,编号也就是下标,数组的下标是由0开始,所以我们访问通过数组的下标来访问数组元素。
int[] array=new int[]{1,2,3};
System.out.println(array[0]);//1
System.out.println(array[1]);//2
System.out.println(array[2]);//3遍历数组:访问数组中的所有的元素个数
int[] array=new int[]{1,2,3}
//while循环遍历
int j=0;
while(j<array.length){
System.out.print(array[j]+" ");
j++;
}
System.out.println();
System.out.println("=======");
//do...while循环遍历
j=0;
do{
System.out.print(array[j]+" ");
j++;
}while(j<array.length);
System.out.println();
System.out.println("=======");
//for循环遍历
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+" ");
}此外还可以利用for-each循环遍历数组
int[] array=new int[]{1,2,3};
for(int x:array){
System.out.print(x+" ");
//将array数组中的每个放到x元素中
}使用Arrays的toString方法将数组以字符串的形式输出
int[] array=new int[]{1,2,3};
String ret= Arrays.toString(array);
System.out.println(ret);//[1,2,3]三、数组是引用类型
1.初始JVM内存分布
内存是一段连续的空间,主要用来储存程序运行时的数据
内村划分:

现在我们只需简单的关心虚拟机栈和堆就好:
虚拟机栈: 与方法调用相关的一些信息,每个方法在执行时,都会先创建一个栈帧,栈帧中包含:局部变量表、操作数栈、动态链接、返回地址以及一些其他信息。当运行结束时,栈帧就被销毁了,即栈帧中保存的数据也会被销毁。
堆:JVM所管理的最大的内存区,使用new创建的对象都是在堆上保存的,堆是随着程序开始运行时而创建的,随程序的退出而销毁,堆中的数据只要还在使用就不会被销毁。
2.基本变量与引用变量的区别
基本变量:该变量空间存放的是其对应的值
引用变量:该变量空间储存的是其所在的地址
int a=1;
int b=2;
int[] array=new int[]{4,5,6};
3.引用变量
int[] array=new int[]{1,2,3};
int[] array1=new int[]{4,5,6};
public static void main(String[] args) {
int[] array=new int[]{1,2,3};
int[] array1=new int[]{4,5,6};
array=array1;
for(int x:array1){
System.out.print(x+" ");//4,5,6
}
array1[0]=11;
System.out.println(array1[0]);//11
System.out.println(array[0]);//11
}