【Java圖文趣味版】快速搞定數組的聲明、開闢空間和初始化賦值

0 前言

本文講解java數組的基礎知識,適合零基礎小白。

1 數組的概念

所謂數組,就是一組同類型東西的集合,可以通過index(索引,下標)訪問這一組東西的某一個元素。

就像下圖這樣,由於數組概念過於簡單,不解釋了。
在這裏插入圖片描述

2 數組的定義及使用

2.1 數組的聲明(Declare an array)

所謂聲明,就是告訴你,這裏有這麼個東西,但是它既沒有空間,也沒有數值,在被使用之前,它可以看做 “一句空話”

有以下兩種寫法

int a [];
int [] b;

順便說一句,這兩種形式都可以聲明數組,但是在Java中,通常我們使用後者,之後的內容也全部使用int [] b的形式。
在這裏插入圖片描述

2.2 數組的聲明和開闢內存空間(Open up a memory space)

聲明一個數組,並且爲它開闢一個空間,佔個地方,但是不在裏面存放東西

有以下寫法

int [] a = new int [4];

在這裏插入圖片描述
另外,可能出現沒有佔到地方的情況,我們後面會說(第4節)。

2.3 數組的聲明、開闢內存空間和初始化賦值(Initialize an array)

有以下兩種寫法

int [] a = {11,22,33,44};
int [] b = new int [] {11,22,33,44};

在這裏插入圖片描述
對於以下語句

new int [] {11,22,33,44};

它的本質,是一個匿名數組,就是不宣佈數組的名稱,但是仍然創建了一個數組。因此它可以作爲一個遊蕩的數組,靈活使用於很多場景。

例如

return new int [] {1,2,3,4};

對於任意的,只需要使用數組,但是不需要定義數組名稱的地方,都可以使用這個表達式。
在這裏插入圖片描述
另外,可能出現賦空值的情況,比如直接就是{},裏面沒有東西,我們在後面會說明(第4節)。

2.4 聲明之後如何開闢空間和賦值

做出聲明之後

int [] a;

如何開闢空間和賦值呢?

  1. 首先,關於開闢空間,和前面完全一樣,只不過把2.2節的語句int [] a = new int [4];拆開寫了
int [] a;
a = new int [4];
  1. 然後,關於賦值,同理,結合2.3節的語句,也是拆開寫了
int [] a;
a = new int [4];
a[0] = 11;
a[1] = 22;
a[2] = 33;
a[3] = 44;

或者使用另外一條語句

int [] a;
a = new int [] {11,22,33,44};

2.5 聲明和開闢空間之後如何賦值

int [] a = new int [4];

在這之後,如何賦值,我就不多說了。

a[0] = 11;
a[1] = 22;
a[2] = 33;
a[3] = 44;

當然怎麼賦值都可以,需要注意的是開闢空間後的數組的訪問方式,對於a[0]這樣的語句是什麼意思,我們後面說。

2.6 賦值之後如何使用

通過下標訪問即可,只要是開闢了空間或者已經賦值的,都可以這樣,例如a[0],需要注意幾點

  • 下標從0開始,可以是變量,例如int zero = 0;訪問的時候可以寫a[zero];
  • 開闢空間後,數組長度固定(變長數組以後再說)

3 在項目中規範化地定義和使用數組

不建議直接出現數字,因爲數字的含義有很多,時間長了自己可能不記得數字的具體含義,其他程序員看到這個數字,也可能會費解,因此,建議將數字符號化,例如:

存儲10個學生的總分數

建議這樣使用

int studentCount = 10;
double [] studentSumScore = new double [studentCount];

而不是下面這種寫法

double [] studentSumScore = new double [10];

這樣的寫法,對於複雜的程序,時間長了,可能會迷茫,10代表啥?這是啥?
在這裏插入圖片描述
你也許會說,不是可以有註釋嗎?我只能告訴你:能在程序中說明白的,就不要添加註釋

另外,關於數組的訪問,也可以參考,比如把studentSumScore[0]寫成studentSumScore[stuOne]

具體有沒有必要,還是結合實際,如果是徒增麻煩,就不要用了。

4 數組中的特殊值:0與null

首先明確一下,先分成兩類

  1. 針對數組本身: 數組的長度爲0和數組本身爲null
  2. 數組元素內容: 數組不爲0,數組元素的值爲0或者爲null

0與null的含義

  • 二者本質上,都是某種具有含義的特殊數值
  • 0就是空empty,本身存在,但是沒有內容,啥都沒有
  • null就是虛無,就是本身不存在,更沒有內容

4.1 數組本身

數組長度爲0,空數組,但是爲其分配了內存空間的位置(有一席之地)

int[] a = new int[0];
int[] b = new int[]{};

在這裏插入圖片描述
數組爲null,系統沒有爲其分配其內存空間(沒有地方,只能流浪)

int[] c = null;

在這裏插入圖片描述

4.2 數組元素內容

前提是,創建了一個非空的數組。

這裏特指:爲一個數組開闢了空間但是沒有賦值時候,數組元素的值可能爲0,可能爲null

例如以下形式,其中,int可以代表基本數據類型和引用數據類型(float,boolean,String)

int[] a = new int[4];

其中

  • 數值型的數據類型,默認初始化爲0
  • 字符型,默認爲空字符
  • 布爾型,默認爲false
  • 對象(引用數據類型),比如String,默認爲null

以下爲實例測試

int[] b = new int[10];
System.out.println("int默認:\t"+b[0]);

boolean[] g = new boolean[4];
System.out.println("boolean默認:"+g[0]);

char[] w = new char[4];
System.out.println("char默認:\t"+w[0]);

String[] c = new String[10];
System.out.println("String默認:\t"+c[0]);

輸出結果爲
在這裏插入圖片描述
下一篇文章:【java圖文趣味版】數組元素的訪問與遍歷

本文中圖片使用億圖圖示(試用版)製作,之後截圖上傳,侵刪。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章