在Java中,安全性一直是被放在很高的位置。
在C/C++语言中,只有全局变量和宏会被初始化,局部变量均未被系统初始化,包括自己开辟的空间。这往往导致一些空间中的数据无法确定,从而产生运行异常。
Java中所有初始定义的变量均被要求初始化,用户开用户开辟的空间会被系统初始化(置0或null)。
下面介绍数组的创建、初始化和复制操作。
1 package helloWorld; 2 import java.util.Arrays;; 3 4 public class Array { 5 public void run() 6 { 7 /* 8 * 数组的初始化 9 */ 10 char[] a1={'1','2','3'}; 11 char[] b1=new char[3]; 12 char[] a2={'1','2','3'},b2=new char[4]; 13 char[] a3=new char[]{'1','2','3'}; 14 System.arraycopy(a1,0,b1,0,b1.length); 15 System.out.println(b1); 16 17 /* 18 * 复制字符超过长度,会抛出异常 19 */ 20 // System.arraycopy(a1,0,b2,0,b2.length); 21 // System.out.println(b2); 22 23 /* 24 * 复制引用地址 25 * 类型有bollean、byte、char、int、short、long、float、double 26 */ 27 char[] ctemp=a1; 28 System.out.println(ctemp.length); 29 ctemp[0]='0'; 30 System.out.println(a1); 31 32 a1[0]='1'; 33 34 35 36 b1=Arrays.copyOf(a1, a1.length); 37 System.out.println(b1); 38 39 /* 40 * 表示从位置0开始,到第三个数为止 41 * 类型有bollean、byte、char、int、short、long、float、double 42 */ 43 char[] b3=new char[3]; 44 b3=Arrays.copyOfRange(a1, 0, 3); 45 System.out.println(b3); 46 47 b3=b1.clone(); 48 System.out.println(b3); 49 50 51 char[] b4=b1.clone();//相当于char[] b4={'1','2','3'}; 52 b4[1]='0'; 53 System.out.println(b1); 54 } 55 56 }
结果为:
1 123 2 3 3 023 4 123 5 123 6 123 7 123
多维数组
在C/C++中,多维数组可以用如下方法表示
1 int i[][]=new int[4][]{1,2,3,4,5,6,7,8};
但在Java中,多维数组不能用上述方法,需要用如下方法表示
1 /* 2 * 多维数组 3 */ 4 int arri[][] = new int[4][]; 5 arri[0]=new int[3]; 6 arri[1]=new int[3]; 7 arri[2]=new int[3]; 8 arri[3]=new int[3]; 9 10 int arrj[][] = new int[][]{{1,2},{4,5,6},{7,8}}; 11 12 13 int i = 0; 14 int j = 0; 15 int k = 0; 16 int temp; 17 // int n=0; 18 //System.out.println(arri.length);//长度为4 19 for (i = 0; i < arri.length; i++) { 20 for (j = 0; j < arri[0].length; j++) { 21 arri[i][j] = (int) (Math.random() * 12) + 1; 22 System.out.print(arri[i][j] + " "); 23 } 24 System.out.println(); 25 } 26 27 for (i = 0; i < arri.length ; i++) 28 for (j = 0; j < arri[0].length; j++) 29 for (k = j + 1; k < arri[0].length; k++) 30 if (arri[i][j] > arri[i][k]) { 31 temp = arri[i][j]; 32 arri[i][j] = arri[i][k]; 33 arri[i][k] = temp; 34 } 35 for (i = 0; i < arri.length; i++) { 36 for (j = 0; j < arri[0].length; j++) 37 System.out.print(arri[i][j] + " "); 38 System.out.println(); 39 }