>[success] # 數組
* 當需要在Java程序中記錄多個類型相同的數據內容時,則聲明一個一維數 組即可,一維數組本質上就是在內存空間中申請一段`連續`的存儲單元。

* 數組是相同數據類型的多個元素的容器,但需要結合**隱式類型轉換**來考慮,例如`dobule `類型數組可以存`byte short int long float double` 類型,元素按線性順序排列,在Java語 言中體現為一種`引用`數據類型
* `數據類型[] 數組名稱 = new 數據類型[數組的長度];`
~~~
int[] numLs = new int[5];
~~~
* 調用數組的length屬性可以獲取數組的長度:
* 可以通過下標的方式訪問數組中的每一個元素。需要注意的是:數組的下標從0開始,對于長度為n的數組,下標的范圍是0~n-1。
>[danger] ##### 數組的聲明
* **動態方法**聲明
~~~
int[] arr1 = new int[2]; // 推薦寫法
int arr2[] = new int[2]; // 不推薦寫法
~~~
* **靜態聲明** `數據類型[] 數組名稱 = {初始值1, 初始值2, ...}`
~~~
boolean[] arr4 = new boolean[]{true, true, false, false}; // 特殊寫法不推薦
char[] arr3 = {'a', 'b', 'c', 'd'}; // 推薦寫法,是上面寫法的縮寫,即定義初始值也定義了長度
~~~
* 基本類型的數組(數據元素為基本類型)創建后,其元素的初始值:
* * byte、short、char、int、long為 `0`;
* * char `\u0000` 空格
* * float 和 double為 `0.0`;
* * boolean 為 `false`
* * 引用數據類型 為 `null`
~~~
public class ArrayTest {
public static void main(String[] args) {
int[] iLs = new int[5];
System.out.println(iLs[0]); // 0
byte[] bLs = new byte[5];
System.out.println(bLs[0]); // 0
short[] sLs = new short[5];
System.out.println(sLs[0]); // 0
char[] cLs = new char[5];
System.out.println(cLs[0]); // `\u0000` 實際控制臺是一個空格展示
long[] lLs = new long[5];
System.out.println(lLs[0]); // 0
float[] fLs = new float[5];
System.out.println(fLs[0]); // 0.0
double[] dLs = new double[5];
System.out.println(dLs[0]); // 0.0
boolean[] boolLs = new boolean[5];
System.out.println(boolLs[0]); // false
}
}
~~~
* 二者區別
**靜態初始化**:手動指定數組的元素,系統會根據元素的個數,計算出數組的長度。
**動態初始化**:手動指定數組長度,由系統給出默認初始化值
>[danger] ##### length 打印數組長度
~~~
public class ArrayTest {
public static void main(String[] args) {
int[] iLs = new int[5];
System.out.println(iLs.length); // 5
}
}
~~~
>[danger] ##### 打印數組指定項
* 超過初始化長度則數組越界報錯
~~~
public class ArrayTest {
public static void main(String[] args) {
int[] iLs = new int[5];
/*
* 數組越界
* java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds fo length 5
*/
// System.out.println(iLs[5]);
System.out.println(iLs[4]); // 0
}
}
~~~
>[danger] ##### 循環打印每一項
~~~
public class ArrayTest {
public static void main(String[] args) {
int[] iLs = { 1, 8, 9, 0, 10 };
for (int i = 0; i < iLs.length; i++) {
System.out.println(i + "----" + iLs[i]);
}
}
}
~~~
* 打印結果
~~~
0----1
1----8
2----9
3----0
4----10
~~~
- windows -- 環境變量
- Vscode -- 編寫java
- 初始java
- java -- 關鍵字
- 編寫第一個java程序
- java -- 注釋
- 計算機存儲 -- 進制
- java -- 類型
- java -- 變量
- 數字類型
- 布爾類型
- 字符類型
- 類型轉換
- 雙等比較是什么
- java -- 運算符
- 算數運算符
- 字符串拼接
- 關系/比較運算符
- 自增減運算符
- 邏輯運算符
- 三目運算
- 賦值運算符
- 移位運算符
- 位運算符
- 運算符優先級
- java -- 流程控制語句
- if /else if /if -- 判斷
- switch case分支結構
- for -- 循環
- 用雙重for循環
- while -- 循環
- do while -- 循環
- 案例練習
- java -- 數組
- 數組的存儲
- 數組的增刪改查
- 數組的特點
- 數組案例
- 二維數組
- 數組的工具方法
- java -- 方法
- java -- 方法的重載
- java -- 方法的調用流程
- java -- 類方法傳參注意事項
- java -- 方法練習案例
- 對比 return break continue
- for each循環
- java -- 基礎練習
- java -- 面向對象
- java -- 創建類和對象
- java -- 訪問控制符
- java -- 類成員方法
- java -- 構造方法
- java -- this
- java -- 封裝
- java -- 對象內存圖
- java -- 創建對象案例
- java -- static
- java -- 繼承
- super -- 關鍵字
- java -- 構造塊和靜態代碼塊
- java -- 重寫
- java -- final
- java -- 多態
- java -- 抽象類
- java -- 接口
- 引用類型數據轉換
- 綜合案例
- java -- 內部類
- java -- 回調模式
- java -- 枚舉類型
- java -- switch 使用枚舉
- java -- 枚舉方法使用
- java -- 枚舉類實現接口
- java -- javaBean
- java -- package 包
- java -- import
- java -- 遞歸練習
- java -- 設計模式
- 單例模式
- java -- 注解
- java -- 元注解
- Java -- 核心類庫
- java -- 處理字符串
- Java -- String
- String -- 常用方法
- String -- 正則
- Java -- StringBuilder 和 StringBuffer
- 知識點
- Java -- StringJoiner 字符串拼接
- 練習題
- 字符串的總結
- Java -- 包裝類
- Integer
- Double
- Boolean
- Character
- java -- 集合類
- java -- util.Collection
- Iterator接口
- java -- util.List
- java -- ArrayList
- java -- util.Queue
- java -- util.Set
- java -- util.Map
- java -- util.Collections
- Java -- Math
- Java -- java.lang
- Java -- Object
- Java -- 獲取當前時間戳
- Java -- 異常
- Java -- java.util
- java -- Date
- java -- Calender
- Java -- java.text
- Java -- SimpleDateFormat
- Java -- java.time
- Java -- java.io
- java -- io.File
- java -- 泛型
- IDEA -- 用法