Java陣列相關知識點
阿新 • • 發佈:2020-12-03
陣列
1.陣列初始化概述
Java中的陣列必須先初始化才能使用
初始化:就是為陣列中的陣列元素分配記憶體空間,併為每個陣列元素賦值
2.陣列初始化方式
2.1動態初始化
動態初始化:初始化時只指定陣列長度,由系統為陣列分配初始值
格式:資料型別[] 變數名 = new 資料型別[陣列長度];
範例:int[] arr = new int[3];
package com.itheima_01; public class ArrayDemo { public static void main(String[] args) { int[] arr = new int[3]; /* * 左邊: * int:說明陣列中的元素型別是int型別 * []:說明這是一個數組 * arr:陣列名稱 * 右邊: * new:為陣列申請記憶體空間 * int:說明陣列中的元素型別是int型別 * []:說明這是一個數組 * 3:陣列長度,即陣列中的元素個數 * * */ } }
2.2靜態初始化
靜態初始化:初始化時指定每個陣列元素的初始值,由系統決定陣列長度
- 格式:資料型別[] 變數名 = new 資料型別[]{資料1,資料2,資料3......}
- 範例:int[] arr = new int[]{1,2,3};
推薦
- 簡化格式:資料型別[] 變數名 = {資料1,資料2,資料3.....}
- 範例:int [] arr = {1,2,3};
3.陣列元素訪問
3.1陣列元素訪問
-
陣列變數的訪問方式:
-
格式:陣列名
-
陣列中內部儲存的資料成員的訪問方式:
-
格式:陣列名[陣列下標索引]
-
索引是陣列中資料的標號方式
-
索引作用:索引用於訪問陣列中的資料使用,陣列名[索引]等同於變數名,是一種特殊的變數名
-
特徵:
- 索引從0開始
- 索引是連續的
- 索引是逐一增加的,每次加一
//輸出陣列名
System.out.println(arr);//[I@1540e19d
//輸出陣列元素
System.out.println(arr[0]);//0
System.out.println(arr[1]);//0
System.out.println(arr[2]);//0
4.記憶體分配
4.1Java中的記憶體分配
Java程式在執行時,需要在記憶體中分配空間,為了提高運算效率,就對空間進行了不同區域的劃分,因為每一片區域都有特定的資料處理方式和記憶體管理方式。
5.陣列操作中的兩個常見小問題
5.1 陣列索引越界
訪問了資料中不存在的索引對應的元素,造成索引越界問題
int[] arr = new int[3];
System.out.println(arr[3]);
5.2空指標異常
訪問的陣列已經不在指向堆記憶體的資料,如果強行訪問就會造成空指標異常
int[] arr = new int[3];
System.out.println(arr[2]);
//把null賦值給arr陣列
//null:空值,引用資料型別的預設值,表示不指向任何有效物件
arr = null;
//輸出元素
System.out.println(arr[2]);
6.陣列常見操作
6.1遍歷
int[] arr = {11,22,33,44,55,66,77,88,99};
for (int x = 0; x < arr.length; x++){
System.out.println(arr[x]);
}
6.2獲取最值
//定義陣列
int[] arr = {12,45,98,71,60};
//定義一個變數,用於儲存最大值
//取陣列中的第一個資料作為變數的初始值
int max = arr[0];
//與陣列中的剩餘元素逐個比對,每次比對將最大值儲存到變數中
for(int x = 1; x <arr.length;x++){
if(arr[x] > max){
max = arr[x];
}
}
//迴圈結束後列印最大值
System.out.println("max:" + max);