Java学习(三)

在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][]{12345678};

但在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         }

 

posted @ 2018-02-05 13:11  andyalgorithm  阅读(181)  评论(0)    收藏  举报