概念
數組,就是容器,只能存放相同類型的數據;
數組的格式
數據類型[] 數組名 = new 數據類型 [數組的容量];
double[] scores = new double[100];
數組聲明縮寫
int[] arr={1,2,3,4};
數組中元素的存取
int[] arr = new int[3];
arr[0] = 1; // 給數組第一個元素賦值
arr[1] = 2; // 給數組第二個元素賦值
arr[2] = 3; // 給數組第三個元素賦值
// 打印賦值結果
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
總結:數組元素的存放和取出,都是通過數組的索引實現的;
數組的遍歷
class test_數組的遍歷 {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5, 6, 7};
// 通過訪問length屬性獲取數組的長度
// 格式: 數組名.length
System.out.println(array.length);
// i從0開始, 因爲數組下標從0開始
// 循環判斷條件: i < 數組的長度
// 循環變量增量: 每次循環結束索引值+1: i++
for(int i = 0; i < array.length; i++){
System.out.println(array[i]);
}
}
}
java的內存組成
堆:new 出的對象在堆上
java棧:java程序、線程運行數據、內存數據
每個方法都有自己的棧、運行時需要的數據存在自己的棧中
每個線程對立的是圖中淺藍色的部分(java棧、本地方法棧、程序計數器)
堆和方法區是所有線程共享的
java棧會對調用的每個方法生成一個棧幀
數組的內存圖解
一維數組內存圖解
二維數組內存圖解
引用傳遞和按值傳遞
public class reference{
public static void main( String[] args){
int[] arr=new int[3];
int[] array=arr;
array[0]=2;
System.out.println(arr[0]);//2 引用傳遞
int a=10;
int b=a;
b=20;
System.out.println(a);//10 值傳遞
}
}
引用類型的變量進行傳參,實際傳遞的是保存在變量中指向堆中空間的地址,這種傳參情況叫做引用傳遞;
如果一個引用改變了空間中的值,對所有指向這個空間的引用都有影響;
基本類型的變量進行傳參,實際傳遞的保存在變量中的常量值,這種情況叫做值傳遞;
如果改變一個變量的值,對其他的變量沒有影響;
數組的特點
數組,是一個容器,可以存放相同類型的數據;
數組有容量大小,使用length屬性可以獲取,方法是:數組名.length;
數組一旦創建,容量大小就固定不變;
數組中的元素都有索引,對數組元素的操作就是通過索引實現的;
索引的特點是,從0開始,連續遞增,最大值是數組容量減一;
什麼時候使用數組?
1.在數據量比較多,而且還是相同類型的;
2.數據量是確定的,不確定,就不知道該創建多大的數組裝;
3.數據可以有順序的,可以通過索引來操作的;
不滿足以上條件,但是同樣數據量比較大,該怎麼辦呢?使用集合;
二維數組
聲明一個二維數組:使用符合[][]表示;
數據類型[][] 數組名=new 數據類型二維數組的容量
int [] [] array = new int[3][2];
聲明時可直接賦值
int [] [] array = new int[][]{{1,2},{3,4,5},null};
開源地址
開源項目地址:https://github.com/371854496/...
java學習資料:https://github.com/371854496/...
各位覺得還闊以的話,點下Star,分享不易,thank you!
公衆號 全戰開花
獲取更多技術乾貨