1.數組類型
數組是編程語言中常見的一種數據結構,可用於存儲多個數據,每個數組元素存放一個數據,可以通過數組元素的索引來訪問數組元素。數組也是一種數據類型,java的數組要求所有的數組元素具有相同的數據類型,即一個數組只能存儲一種數據類型的數據,而不能存儲多種數據類型的數據。
一旦數組初始化完成,數組在內存中所佔的空間將被固定下來,因此數組的長度將不可改變。即使把某個元素的數據清空,但它所佔的空間依然被保留,依然屬於該數組,數組的長度不變。Java的數組既可以存儲基本類型的數據,也可以存儲引用類型的數據,只要所有的數組元素具有相同的類型即可。
2.定義數組
語法格式:
A:數據類型[] 數組名 如:int[] arr(推薦);
B:數據類型 數組名[] 如:int arr[];
數組是一種引用類型的變量,使用它定義一個變量時,僅僅表示定義了一個引用變量,這個引用變量還未指向任何有效的內存,因此定義數組時不能指定數組的長度。
3.數組初始化
Java中數組必須先初始化,然後才能使用。所謂的初始化,即爲數組的元素分配內存空間,併爲每個元素賦初始值。
數組初始化的兩種方式:
靜態初始化:初始化時指定每個元素的初始值,由系統決定數組長度;
動態初始化: 初始化時只指定數組長度,由系統爲數組分配初始值。
3.1 靜態初始化
格式:數據類型[] 數組名=new 數據類型[]{元素1,元素2,…}
簡化格式:數據類型[] 數組名={元素1,元素2,…}(只有在定義數組的同時執行數組初始化才支持使用簡化的靜態初始化)
//使用靜態初始化,初始化數組時只指定數組元素的初始值,不指定數組元素的長度
Int[] arr=newint[]{0,1,2,3,4};
//簡化寫法
Int[] arr={0,1,2,3,4};
3.2 動態初始化
格式:數據類型[] 數組名=new 數據類型[數組長度];
//動態初始化只指定數組的長度,由系統爲每個元素指定初始值
Int[] arr=newint[5];
數據類型 |
默認初始化值 |
byte、short、int、long |
0 |
float、double |
0.0 |
char |
一個空字符(空格),即’\u0000’ |
boolean |
false |
引用數據類型 |
null,表示變量不引用任何對象 |
注意:不能同時使用靜態初始化和動態初始化。
4. 數組的遍歷
在操作數組時,經常需要依次訪問數組中的每個元素,這種操作稱作數組的遍歷。
5. 數組常見異常
數組索引越界異常(arrayIndexOutOfBoundsException):
每個數組的索引都有一個範圍,即0~length-1。在訪問數組的元素時,索引不能超出這個範圍,否則程序會報錯。
空指針異常(NullPointerException):
在使用變量引用一個數組時,變量必須指向一個有效的數組對象,如果該變量的值爲null,則意味着沒有指向任何數組,此時通過該變量訪問數組的元素會出現空指針異常。
6. 二維數組
二維數組實質就是一個元素爲一維數組的數組。
6.1動態初始化方式一(指定有多少個長度相同的一維數組):
數據類型[][] 變量名 = new 數據類型[m][n];
m表示這個二維數組有多少個一維數組
n表示每一個一維數組的元素個數
int[][] arr = new int[3][4];
6.2動態初始化方式二(指定二維數組中有多少個一維數組,每一個一維數組的長度不固定):
數據類型[][] 變量名 = new 數據類型[m][];
注:m這個數據必須給出,後面的數據可以不給
6.3二維數組的靜態初始化:
靜態初始化:
數據類型[][] 變量名 = new 數據類型[][]{{元素…},{元素…},{元素…}};
簡化格式:
數據類型[][] 變量名 = {{元素…},{元素…},{元素…}};