Java數組的使用方法實例分析
May 10, 2023 pm 05:19 PM一、前言
學習概述:前八天我們學習了語法基礎、運算子與表達式、循環結構、分支結構,今天主要學習數組的定義、相關的屬性方法、數組存儲的記憶體圖、常見錯誤
學習目標:掌握陣列的兩種定義方法、相關屬性、了解記憶體原理、錯誤解決
二、陣列的定義
1 .概述
假如有一個班同學的成績需要存儲,該使用什麼方法呢?
像我們之前學習的,可以定義多個變數儲存不同的成績。但是要有1000多個學生,那麼到定義1000多個變數嗎?當然不行,這就需要用到我們的陣列了。
2.靜態初始化數組
特點:定義數組的時候直接給數組賦值,由系統決定數組長度
通用格式:
# #資料型別[] 陣列名稱= { 元素1,元素2 ,元素3,… };3.動態初始化陣列特點:定義陣列時確了定元素的型別和陣列的長度,之後存入資料通用格式:例如:
int [] array= {1,2,3,4,5};
double[] scores = {88.5, 99.5, 59.5};
資料型別[] 陣列名稱= new 資料型別[長度];#預設值: ##資料型別基本型別byte、short、char、int、longfloat、double##boolean #參考類型例如:
int [] array= new int [5];
double[] scores = new double[3];
4.總結
陣列適合同種類型的大量資料
靜態初始化適合知道了元素值
動態初始化適合不清楚存入哪些資料
三、陣列的屬性
1.訪問
##一般訪問陣列的方式為:陣列名稱[索引]#範例:
1 2 3 4 5 |
|
1 2 3 4 |
|
1 2 3 4 5 6 7 |
|
10 8 9 6 8 71 9 99#四、記憶體圖
- Java在程式運行時,需要在記憶體中分配空間,並對空間進行了不同區域的劃分。
- 堆疊記憶體:儲存局部變量,使用完畢立即消失
- 堆疊記憶體:儲存new 出來的內容(物件、實體),位址使用完畢在垃圾回收器空閒時回收
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
[I@15db9742原理講解:0
0
0
[I@15db9742
100
0
200
- #動態初始化先在堆記憶體產生一個new一個arr位址值,具體看編譯器的結果,這裡假設001。由於動態初始化,所以每個元素都有一個初始值,可以看上面的表。我們輸出元素,先存取陣列名稱位址,到堆記憶體下標,再輸出元素值。
- 修改陣列值,歷程和檢視相同,只不過多了一步修改的過程,如下圖:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
[I@15db9742原理講解:100
200
300
[I@ 15db9742
111
[I@15db9742
111
1
2
3
//静态初始化数组
int []
array
= {1,2,3};
System.out.println(
array
[3]);
登入後複製
1 2 3 |
|
- 上面的程式碼執行之後,會出現下面的報錯例外:
- Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
- 解釋:我們靜態化初始數組給了3個數字,最大索引為2,當我們訪問3時,就會報錯
1
2
3
4
//动态初始化数组
int []
array
=
new
int[3];
array
=null;
System.out.println(
array
[0]);
登入後複製
1 2 3 4 |
|
- 上面的程式碼執行之後,會出現下面的報錯異常:
- Exception in thread "main" java.lang.NullPointerException
- 解釋:我們將陣列置為null,導致存取的陣列不指向堆記憶體的資料
具體定義類型 | 預設值 | |
0 | ||
0.0 | ||
false |
||
#類別、介面、陣列、String | null |
以上是Java數組的使用方法實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱門文章

熱門文章

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)