概念数组介绍相同类型的数据按照一定顺序排列的集合。数组也是一组数据类型是引用类型。数组在内存中以连续的内存块进行存储。数组的长度:arr.length数组最后位是arr[arr.length-1]定义与初始化定义数据类型 数组名[] new 数据类型[数组长度];数据类型[] 数组名 new 数据类型[数组长度]也是可以的。这样定义数组中的元素是默认值。数据类型 默认值--------------------------------------------byte,short,int,long0double,float0.0booleanfalsechar\u0000 引用数据类型null(空值)也可以先声明再分配空间数据类型[]数组名;数组名new数据类型[数组长度];静态初始化:数据类型[] 数组名 {n1, n2, n3 ... }数据类型[] 数组名 new 数据类型[]{n1, n2, n3 ... }数组的数据类型是引用类型所以数组变量存储是一个地址这个地址指向堆内存的一块内存。所以数组一但创建内存中的长度是固定的无法更改这块内存的长度。使用细节1.数组中的元素可以进行自动转换。2.数组属于引用类型数组型数据是对象Java 中的[]运算符被预定义为检查数组边界而且没有指针运算即不能通过a加1得到数组的下一个元素。数组赋值机制基本数据类型赋值机制是值拷贝。数组在默认情况下是引用传递变量里存储的是地址指向创建的数组也就是说数组就是一个在堆内存区创建一个对象。数组操作importjava.util.Arrays;publicclassArray02{publicstaticvoidmain(String[]args){copyArr();revArr();addArr();delArr();}publicstaticvoidaddArr(){//定义一个新的数组长度oldArr.length1//向新的元素赋值给新数组(最后一位);//将原来的变量指向新数组intaddItem10;int[]arr1{1,3,4,5,6};printArr(arr1,原来的数组是:);int[]tempnewint[arr1.length1];temp[arr1.length]addItem;for(inti0;itemp.length;i){if(iarr1.length-1){temp[i]arr1[i];}}arr1temp;printArr(arr1,增加元素后是:);}publicstaticvoiddelArr(){//定义一个新的数组, 长度oldArr.length-1//获取原来数组中的前oldArr.length-1位的值赋给新数组;//将原来的变量指向新数组;int[]arr1{1,3,4,5,6};printArr(arr1,原来的数组是:);int[]tempnewint[arr1.length-1];for(inti0;itemp.length;i){temp[i]arr1[i];}arr1temp;printArr(arr1,删除元素后是:);}//翻转数组publicstaticvoidrevArr(){int[]arr1{1,3,4,5,6};for(inti0;i(arr1.length/2);i){inttemparr1[i];arr1[i]arr1[(arr1.length-1)-i];arr1[(arr1.length-1)-i]temp;}printArr(arr1,);}//复制数组publicstaticvoidcopyArr(){int[]arr1{1,3,4,5,6};//数组直接赋值赋值的是地址。两个变量指向同一个内存int[]arr2arr1;arr2[2]5;System.out.println(arr2[2]);System.out.println(arr1[2]);int[]arr3Arrays.copyOf(arr1,arr1.length);arr3[2]10;System.out.println(arr3[2]);System.out.println(arr2[2]);System.out.println(arr1[2]);}//打印数组publicstaticvoidprintArr(int[]arr,Stringstr){System.out.println(str);for(inti0;iarr.length;i){System.out.print(arr[i] );}System.out.println();}}for(item: conllection){ }collection这一集合表达式必须是一个数组或者是一个实现了Iterable接口的类对象(例如ArrayList)。在Java中允许数组长度为0。在编写一个结果为数组的方法时如果碰巧结果为空则这种语法形式就显得非常有用。此时可以创建一个长度为0的数组:new elementType[0]; //注意数组长度为0与null 不同。多维数组二维静态初始化数据类型[][] 数组名 {{...}, {...}, {...}};动态初始化数据类型[][] 数组名 new 类型[长度][长度]数据类型[][]数组名 数组名new类型[长度][长度];第二位的长度可以不写表示第二位不确定。 数据类型[]数组名[]数据类型 数组名[][]遍历for循环嵌套遍历列数不确定在java中二维数组中的(第二列)不是确定的例如:代码实现importjava.util.Arrays;publicclassArray03{publicstaticvoidmain(String[]args){int[][]arrnewint[3][];for(inti0;iarr.length;i){arr[i]newint[i1];for(intj0;jarr[i].length;j){arr[i][j]i1;}}for(inti0;iarr.length;i){for(intj0;jarr[i].length;j){System.out.print(arr[i][j] );}System.out.println();}}}