特征
(1)數(shù)組元素的類型是唯一的,一個(gè)數(shù)組只能存儲(chǔ)一種數(shù)據(jù)類型的數(shù)據(jù)。
(2)數(shù)組的長度是固定的,一旦數(shù)組初始化完成,數(shù)組所占有的內(nèi)存空間將被固定。數(shù)組長度不可以改變。
(3)數(shù)組元素的類型既可以是基本類型 也是存儲(chǔ)引用類型。
聲明
數(shù)據(jù)類型[] 數(shù)組變量名(推薦寫法)
數(shù)據(jù)類型 數(shù)組變量名 []
Java是面向?qū)ο蟮恼Z言,數(shù)據(jù)類型[]可以看成是一個(gè)整體類型,即數(shù)組類型,第二種是C 語言數(shù)組的聲明方式。
int[] intArr;
String[] stringArr;
初始化
數(shù)組初始化的過程就是為數(shù)組的元素分配內(nèi)存空間,并且為每個(gè)元素賦初始值
**(1)動(dòng)態(tài)初始化 **
動(dòng)態(tài)初始化使用new運(yùn)算符分配指定長度的內(nèi)存空間,只指定長度,由系統(tǒng)給出初始化值,注意必須指定數(shù)組的長度值
new 數(shù)據(jù)類型[數(shù)組長度]
eg
int[] intArr = new int[2];
intArr[0] = 1;
intArr[1] = 2;
String[] stringArr = new String[3];
stringArr[0] = "Hello world";
stringArr[1] = "Hello Java";
stringArr[2] = "Hello Python";
(2)靜態(tài)初始化
類型[] 數(shù)組名稱 = new 類型[]{元素,元素,....}
類型[] 數(shù)組名 = {元素,元素,....}
給出初始化值,不需要指定數(shù)組的長度,根據(jù)初始值的個(gè)數(shù)決定長度.
int[] arr = new int[]{1,2,3,4,5};
int[] arr = {1,2,3,4,5};
數(shù)組的初始化具體示例用法
public class Main {
public static void main(String[] args){
int [] arr = new int[10];// 聲明數(shù)組
for(int i =0;i<arr.length;i++){
arr[i]=i;
}
int []numbers = new int[]{100,90,80};
for(int i =0;i<numbers.length;i++){
System.out.println(numbers[i]);
}
for(int num :numbers){
System.out.println(num);
}
}
}
ArrayIndexOutOfBoundsException
每個(gè)數(shù)組的索引都有一個(gè)范圍,即0——length-1,在訪問數(shù)組的元素,不能超過數(shù)組范圍,否則引起ArrayIndexOutOfBoundsException
public static void main(String[] args) {
int [] arr ={1,2,3,4};
System.out.println(arr[4]);
}
NullPointerException
空指針異常,使用變量引用一個(gè)數(shù)組的時(shí)候,必須執(zhí)行一個(gè)有效的數(shù)組對(duì)象,如果該變量值為null,則意味沒有指向任何數(shù)組,此時(shí)通過變量名稱訪問數(shù)組元素會(huì)出現(xiàn)空指針異常
public static void main(String[] args) {
int [] arr ={1,2,3,4};
System.out.println(arr[0]);
arr = null;
System.out.println(arr[0]);
}