Java學習第5天
今日主要學習內容——Java中的陣列
陣列
- 陣列概述:一次性宣告大量的用於儲存資料的變數。要儲存的資料通常都是同類型資料。
- 陣列array是一種用於儲存多個相同型別資料的儲存模型。
- 資料定義:格式一 資料型別[] 變數名 int[] arr 格式二: 資料型別 變數名[] int arr[]
- 陣列初始化之動態初始化
Java中的陣列必須先初始化,然後才能使用
所謂初始化:就是為陣列中的元素分配記憶體空間,併為每個陣列元素賦值。
動態初始化:初始化時只指定陣列長度,並由系統為陣列分配初始值。
格式:陣列型別【】變數名 = new 陣列型別 【陣列長度】int [] arr = new int[3]
- 陣列元素訪問
陣列變數訪問方式 格式:陣列名
陣列元素訪問方式 格式:變數名 【索引】
- 記憶體分配
Java程式中的記憶體分配:Java程式在執行時,需要在記憶體中分配空間。為了提高運算效率,就對空間進行了不同區域的劃分,因為每一片區域都有特定的處理資料方式和記憶體管理方式。
int [] arr=new int[3];
/*左邊 int 說明陣列中元素的資料型別
[] 說明是一個數組
arr是陣列的名稱
右邊:
new 為陣列申請記憶體空間
[] 說明是一個數組
3是陣列的長度
*/
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
陣列在初始化時,會為儲存空間新增預設值
整數:預設值0,浮點數:預設值0.0 ,布林值:預設值false 字元:預設值是空字元,引用資料型別:預設值是null。
棧記憶體:儲存區域性變數 定義在方法中的區域性變數,例如陣列名arr,使用完畢立即消失。
堆記憶體:儲存new出來的內容(實體,物件)陣列在初始化時,會為儲存空間新增預設值 整數:0, 浮點數:預設值0.0 ,布林值:預設值false 字元:預設值是空字元,引用資料型別:預設值是null。每一個new出來的東西都有一個地址值,使用完畢後會被回收
- 陣列初始化之靜態初始化
靜態初始化:初始化時指定每一個數組元素的初始值,有系統決定陣列長度。
格式:資料型別【】變數名=new 資料型別 【】{資料1,資料2,資料3…};
範例:int [] arr=new []{1,2,3} 簡化格式:int [] arr={1,2,3};
- 陣列常見小問題
- 索引越界:訪問了陣列中不存在的索引對應元素,造成越界問題
- 空指標異常:訪問的陣列已經不再指向堆記憶體的資料,造成空指標異常
今日所遇問題——對棧空間和對堆空間的理解
問題解決:瀏覽CSDN文章解決。