91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java數組的使用方法實例分析

發布時間:2022-05-11 10:18:48 來源:億速云 閱讀:135 作者:zzz 欄目:開發技術

這篇文章主要介紹“Java數組的使用方法實例分析”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Java數組的使用方法實例分析”文章能幫助大家解決問題。

一、前言

學習概述:前八天我們學習了語法基礎、運算符與表達式、循環結構、分支結構,今天主要學習數組的定義、相關的屬性方法、數組存儲的內存圖、常見錯誤

學習目標:掌握數組的兩種定義方法、相關屬性、了解內存原理、錯誤解決

二、數組的定義

1.概述

假如有一個班同學的成績需要存儲,該使用什么方法呢?

像我們之前學習的,可以定義多個變量存儲不同的成績。但是要有1000多個學生,那么到定義1000多個變量嗎?當然不行,這就需要用到我們的數組了。

2.靜態初始化數組

特點:定義數組的時候直接給數組賦值,由系統決定數組長度

通用格式:

數據類型[] 數組名 = { 元素1,元素2 ,元素3,… };
例如:
int [] array= {1,2,3,4,5};
double[] scores = {88.5, 99.5, 59.5};

3.動態初始化數組

特點:定義數組時確了定元素的類型和數組的長度,之后存入數據

通用格式:

數據類型[] 數組名 = new 數據類型[長度];
例如:
int [] array= new int[5];
double[] scores = new double[3];

默認值:

數據類型具體定義類型默認值
基本類型

byte、short、char、int、long

0

float、double

0.0

boolean

false
引用類型

類、接口、數組、String

null

4.總結

  • 數組適合同種類型的大量數據

  • 靜態初始化適合知道了元素值

  • 動態初始化適合不清楚存入哪些數據

三、數組的屬性

1.訪問

一般訪問數組的方式為:

數組名稱[索引]

例題:

//靜態初始化數組
int [] array= {1,2,3,4,5};
System.out.println(array[0]);//輸出 1
System.out.println(array[1]);//輸出 2
System.out.println(array[3]);//輸出 4

2.長度

長度可以直接調用length得到數組的長度。

例題:

//靜態初始化數組
int [] array= {1,2,3,4,5};
System.out.println(array.length);//調用方法,輸出長度 5
//最大索引array.length-1

3.遍歷

遍歷就是一個一個數組元素的訪問,主要應用在搜索、數據統計......

我們之前學了循環結構、分支結構,下面通過for循環遍歷一個數組

例題:

給定元素 {10,8,9,4,5,6,8,71,2,3,9,99},用靜態數組存儲并輸出數組中大于5的元素?

編碼實現:

//靜態初始化數組
int [] array= {10,8,9,4,5,6,8,71,2,3,9,99};
for(int i=0;i<array.length;i++)
{
	if(array[i]>5)
		System.out.println(array[i]);
}

輸出結果:

10 8 9 6 8 71 9 99 

四、內存圖

Java數組的使用方法實例分析

  • Java在程序運行時,需要在內存中分配空間,對空間進行了不同區域的劃分。

  • 棧內存:存儲局部變量,使用完畢立即消失

  • 堆內存:存儲new 出來的內容(對象、實體),地址使用完畢在垃圾回收器空閑時回收

1.單數組內存圖

下面的創建數組代碼,實現它的內存關系圖

編碼實現:

//動態初始化數組
int [] arr=new int[3];
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
//修改值
arr[0]=100;
arr[2]=200;
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);

輸出結果:

[I@15db9742
0
0
0
[I@15db9742
100
0
200

原理講解:

Java數組的使用方法實例分析

  • 動態初始化先在堆內存生成一個new 一個arr地址值,具體看編譯器的結果,這里假設001。由于動態初始化,所以每個元素都有一個初始值,具體可以看上面的表。我們輸出元素,先訪問數組名地址,到堆內存下標,再輸出元素值。

  • 修改數組值,歷程和查看相同,只不過多了一步修改的過程,如下圖:

Java數組的使用方法實例分析

2.多數組內存圖

Java數組的使用方法實例分析

多個數組和單數組內存使用原理相同,這里我就不過多講述了。

3.數組指向相同內存

假如我們把兩個數組的地址值改為相同,修改后的結果該是如何,如下面的代碼。

編碼實現:

//動態初始化數組
int [] arr=new int[3];
arr[0]=100;
arr[1]=200;
arr[2]=300;
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
int [] arr2=arr;
arr2[0]=111;
arr2[1]=222;
arr2[2]=333;
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr2);
System.out.println(arr2[0]);

輸出結果:

[I@15db9742
100
200
300
[I@15db9742
111
[I@15db9742
111

原理講解:

Java數組的使用方法實例分析

第一個數組在堆內存的地址為001,第二個數組也為001,所以修改第二個數組的值,其實都是同一個數組內存。第一個數組的值也會隨著改變,結果如下:

Java數組的使用方法實例分析

五、常見問題

1.索引越界

//靜態初始化數組
int [] array= {1,2,3};
System.out.println(array[3]);
  • 上面的代碼運行之后,會出現下面的報錯異常:

  • Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3

  • 解釋:我們靜態化初始數組給了3個數字,最大索引為2,當我們訪問3時,就會報錯

2.空指針異常

//動態初始化數組
int [] array= new int[3];
array=null;
System.out.println(array[0]);
  • 上面的代碼運行之后,會出現下面的報錯異常:

  • Exception in thread "main" java.lang.NullPointerException

  • 解釋:我們將數組置為null,導致訪問的數組不指向堆內存的數據

關于“Java數組的使用方法實例分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

华宁县| 封丘县| 湟中县| 隆化县| 长兴县| 惠东县| 汝州市| 吉木乃县| 阜新| 遵义县| 尼玛县| 株洲市| 乐安县| 元氏县| 万盛区| 潍坊市| 同心县| 广州市| 宁武县| 叙永县| 阿巴嘎旗| 柳江县| 辽宁省| 崇仁县| 仙桃市| 泾阳县| 额尔古纳市| 高邑县| 嵊州市| 定襄县| 昌黎县| 酉阳| 剑川县| 桃源县| 武夷山市| 兴城市| 通江县| 永安市| 延长县| 郑州市| 中宁县|