1. 程式人生 > >Java 陣列 (一)

Java 陣列 (一)

   比如一個整形陣列,它就是把整數挨個存在依次遞增的下標所對應的數組裡面,定義一個整形陣列 int a[]={0,1,2};  a[0]就是把 0存在裡面了,而陣列變數則是儲存的它的記憶體地址;
public class CSDN {
	//swap()交換方法
	public static void swap(int firstNum,int secondNum) {
		int aNumber = firstNum;
		firstNum = secondNum;
		secondNum = aNumber;
	}
	public static void swap(int []a) {
		int aNumber = a[0];
		a[0] = a[1];
		a[1] = aNumber;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int []a= {1,2};		//定義一個整形陣列,a[0] = 1 ,a[1] = 2;
		int firstNum = 1;	//定義第一個整形變數firstNum = 1
		int secondNum = 2;	//定義第二個整形變數firstNum = 2
		//向swap()方法裡傳入兩個整形資料變數
		swap(firstNum,secondNum);			//如果swap方法沒有加static關鍵字,那麼這裡呼叫要出錯,具體原因後面文章探究
		System.out.println("呼叫交換函式後firstNum是" + firstNum);	
		System.out.println("呼叫交換函式後secondNum是" + secondNum);
		//swap()方法返回型別為空,輸出結果是firstNum = 1,secondNum = 2,交換沒有發生作用
		//向swap()方法裡面傳入兩個陣列資料
		swap(a);
		System.out.println("呼叫交換函式後a[0]是" + a[0]);	
		System.out.println("呼叫交換函式後a[1]是" + a[1]);
		//swap()方法返回型別為空,輸出結果是a[0] = 2,a[1] = 1,交換髮生了
	}

}

在這裡插入圖片描述
程式結果是在返回值為空的情況下,陣列交換成功,整形變數交換失敗,說明陣列傳的是地址,是引用型別,而變數是值拷貝,只在方法裡交換了,交換的是複製的值,而我們實際的值並沒有發生交換。講firstNum換成a[0],secondNum換成a[1],交換也失敗,說明a[下表數]存放的是資料而不是地址。
以上就為了說明一個問題,陣列儲存的是資料的地址。

1. 那麼,一共有哪些型別的陣列呢

常見的有
整形陣列: int [] array;
字串陣列:String [] array;
浮點型陣列: Double [] array;
字元陣列: char [] array;

總結一下,只要有這個型別,這個型別的陣列也存在包括,類。
型別 [] 陣列名;
2. 陣列的宣告和初始化


a.陣列的宣告有幾種方法?
b.聲明瞭一個數組,是否一定要初始化?
c.初始化的方法有哪些?
d.哪些初始化後是0,哪些初始化後是null?
對應探索:
宣告方式如下(等號之前的都叫宣告,如果聲明瞭一個數據型別的常量,記憶體都會為它開闢一塊空間):
型別 [] 陣列名; //只聲明瞭,沒有進行初始化,在沒有初始化前使用會報錯
型別 [] 陣列名 = new 型別 [陣列長度]; //這個陣列長度可以是直接的一個整數,也可以是整形常量,它開闢陣列空間大小,定死了的。宣告並初始化了,整形資料是0,浮點數型別對應的是0.0,boolean 型別預設值是false,類對應的是null,字串對應的是null,只有字元有點怪,也不報錯也沒有任何輸出,待研究
型別 [] 陣列名 = {};//只是聲明瞭陣列變數,陣列各個物件並沒有創出
型別 [] 陣列名 = {資料1,資料2 等};//這個毫無疑問,宣告並初始化了
(“型別 陣列名 [];”這類凡是方括號在陣列名後的也可以但不推薦,所有不予討論)
-a.如果只宣告一個數組,沒有用的情況下不會報錯,可以以後在建立。
-b.兩個大類
(1)聲明後建立:
型別 [] 陣列名;
陣列名 = new 型別[陣列長度];//or -> 陣列名 = new 型別[]{資料1,資料2等};
(2)宣告同時建立,
型別 [] 陣列名 = new 型別 [陣列長度];//or -> 型別 [] 陣列名 = {資料1,資料2 等};
這裡小結一下,如果要想被建立括號裡一定要有東西,要麼大括號,要麼小括號;建立之後陣列長度就定死了
,所以使用時要小心越界,可變陣列日後分析。
終極大BOSS之Arrays類,下一節專門分析。