Java程序员基本功---数组与内存控制
Java数组是一组具有相同类型值的集合,是Java中的一种引用类型,要想使用Java中的数组,该数组必须经过初始化,数组一旦经过初始化,其长度将不可改变,数组中的每个值将被赋予初始值。
Java数组初始化分为静态初始化和动态初始化。
静态初始化:由程序员显示的指定数组中元素的初始值,由系统决定数组的长度
int[] arr = new int[]{0,1,2};
动态初始化:由程序员显示的指定数组的长度,由系统为数组中各元素赋予初始值
int[] arr = new int[3];
Java数组是静态数组,其长度不可改变,不像Javascript那种动态语言其数组的长度是可以动态改变的
<script type="text/javascript">
var arr = [];
arr[6] = 10;
alert(arr.length);
</script>
Java数组使用前一定要进行初始化吗?
//静态初始化
int[] arr1 = new int[]{0,1,2};
//未进行初始化
int[] arr2;
arr2 = arr1;
for(int pre:arr2){
System.out.println("pre:"+pre);
}
我们可以看到arr2并没有进行初始化,但依然可以使用。Java数组是引用类型
变量,它并不代表数组对象本身,只要让它指向有效的数组对象,指向一块有效的内存,在程序中就可以使用该数组变量。
Java数组中的每一个元素都是一个变量,Java中没有多维数组,多维数组表示的是数组前一维中的每一个元素都是一个引用变量,引用的是一个具有相同类型的数组
int[][] arr =new int[3][];
arr[0] = new int[]{0,1};
arr[1] = new int[]{0,2};
arr[2] = new int[]{0,3};
System.out.println(arr.length);
System.out.println("----------------");
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.println(arr[i][j]);
}
System.out.println("----------------");
}