JAVA基礎系列 - 第5篇: 數組

上篇回顧

上篇的內容不知道小夥伴們學習的怎樣,我這裏出幾個問題幫助下你們鞏固一下,你們看看能不能直接回答出來。java

  1. 循環結構有哪三種?有什麼區別?
  2. break和continue的使用場景和做用?

學習目標

1. 數組

內容

1.1. 數組的做用和特色

做用數組可用於存儲同一類型的多個數據,是一個Java的數據容器程序員

特色數組長度固定,存儲數據類型一致數組

1.2. 數組的格式

// 格式一(經常使用):數據類型[] 數組名稱
int[] arr;
String[] arr;
Object[] arr;

// 格式二(該寫法由C轉Java的程序員使用的比較多):數據類型 數組名稱[]
int arr[];
String arr[];
Object arr[];

1.3. 數組的動態初始化

什麼是數組初始化?ide

  • java中變量使用前必須完成初始化,數組也同樣,須要完成初始化才能使用。學習

  • 數組初始化就是爲數組分配內存空間,併爲數組中每一個元素賦值。spa

  • 數組的初始化分爲動態初始化和靜態初始化。指針

什麼是動態初始化?code

  • 只給定數組的長度,由系統給出默認初始化值。

動態初始化的格式是?orm

// 數組類型[] 數組名稱 = new 數組類型[數組長度];
int[] arr = new int[3]; // 定義一個長度爲 3 的 int 類型數組

格式說明:blog

  • 等號左邊
    • int:數組的數據類型
    • []:表示這是一個數組
    • arr:數組的名稱
  • 等號右邊
    • new:爲數組開闢內存空間
    • int:數組的數據類型
    • []:表示這是一個數組
    • 3:數組的長度

1.4. 數組元素訪問

數組變量存儲的是什麼?

  • 數組在內存中的地址值

什麼是索引?

  • 數組索引:數組元素的編號,從0開始,最大值爲數組長度-1。

  • 能夠經過索引操做數組元素。

數組元素訪問的格式?

// 數組名稱[索引值]
int[] arr = new int[3];

//輸出數組名,獲得一個地址值
System.out.println(arr);  //[I@880ec60

//輸出數組中的元素,默認值0
System.out.println(arr[0]); // 首個元素對應索引值爲 0
System.out.println(arr[1]);
System.out.println(arr[2]);

1.5. 數組的靜態初始化

什麼是靜態初始化?

  • 在建立數組時,直接肯定元素的值。

數組靜態初始化的格式

// 數據類型[]  數組名  =  new  數據類型[]{元素1, 元素2, 元素3...}
int[] arr = new int[]{1,2,3};

// 簡化格式:數據類型[]  數組名  = {元素1, 元素2, 元素3...}
int[] arr = {1,2,3};

數組的動態初始化和靜態初始化的區別:

  • 動態初始化:只給定數組長度,由系統分配默認初始化值。
int[] arr = new int[3];
  • 靜態初始化:建立數組時,直接完成元素的賦值。
int[] arr = new int[]{1,2,3};
int[] arr = {1,2,3};

1.6. 數組操做的常見問題

數組索引越界異常:ArrayIndexOutOfBoundsException

  • 產生緣由:訪問到了數組中不存在的索引。

  • 如何避免:在索引範圍內訪問數組元素。

int[] arr = {10,20,30};

// 下面代碼會運行報錯,由於arr索引範圍爲0~2,-1和3都不在範圍內
System.out.println(arr[-1]); 
System.out.println(arr[3]); 

圖片

空指針異常:NullPointerException

  • 產生緣由:數組地址爲null,此時操做數組元素就會報空指針異常。

  • 注意:一旦出現空指針異常,要在代碼中進行修改或進行非空判斷,避免空指針異常產生。

// 這種緣由大可能是因爲方法返回值爲 null 致使
int[] arr = method();
System.out.println(arr[0]);

圖片

1.7. 數組的遍歷

如何獲取數組長度?

  • 數組名.length

如何遍歷數組?

int[] arr = {10,20,30};

// 普通for循環
for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
}

// 加強 for
for (int i : arr) {
    System.out.println(i);
}

// stream 流
Arrays.stream(arr).forEach(System.out::println);

圖片

總結

今天講解的是數組的概述與基本使用,後面咱們還會講解到集合,這二者在項目中的使用頻率仍是很高的,小夥伴們必定要學好哦!

相關文章
相關標籤/搜索