Java 数组
-
静态初始化
int[] a = {1,2,3,4,5};
-
动态初始化
int[] array = new int[10];
array[0]= 10;
数组中没有被初始化全为0
public static void main(String[] args) {
// 变量类型 变量名 = 变量的值
//数组类型
int [] nums; //推荐定义
/*int numbers[]; //定义*/
nums = new int[10];
System.out.println(nums[0]);
}
//结果 :0
-
获取数组长度:length
public static void main(String[] args) {
//给数组赋值
int[] nums = new int[5]; //第一种方式
//int[] nums = {1,2,3,4,5};
nums[0] = 1;
nums[1] = 2;
nums[2] = 3;
nums[3] = 4;
System.out.println(nums.length);
}
//结果:5
数组的四个基本特点
-
其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
-
其元素必须是相同类型,不允许出现混合类型。
-
数组中的元素可以是任何数据类型 ,包括基本类型和引用类型。
-
数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。
-
下标从0开始。
当你使用不合法的索引访问数组时会报数组越界这种错误,数组arr的合法错误范围是[0, arr.length-1];当你访问这之外的索引时会报这个错。例如:
public static void main(String[] args) {
int[] arr = {1, 2, 3};
for (int i = 0; i <= arr.length; i++) {
System.out.println(arr[i]);
}
}
}
//结果
java.lang.ArrayIndexOutOfBoundsException: 3
at Test.main(Test.java:5)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)