由淺入深快速掌握J(rèn)ava?數(shù)組的使用
1.數(shù)組定義格式
1.1 數(shù)組概述
* 一次性聲明大量的用于存儲(chǔ)數(shù)據(jù)的變量
* 要存儲(chǔ)的數(shù)據(jù)通常都是同類型數(shù)據(jù)。
1.2 什么是數(shù)組
數(shù)組(array)是一個(gè)存儲(chǔ)多個(gè)相同類型數(shù)據(jù)的存儲(chǔ)模型
1.3 數(shù)組的定義格式:
格式1:數(shù)據(jù)類型[ ] 變量名
范例: int[ ] arr
定義了一個(gè)int類型的數(shù)組,數(shù)組名是arr
格式2:數(shù)據(jù)類型 變量名[ ]
范例: int arr[ ]
定義了一個(gè)int類型的變量,變量名是arr數(shù)組
2.數(shù)組初始化之動(dòng)態(tài)初始化
2.1 數(shù)組初始化概述
java中的數(shù)組必須先初始化,然后才能使用
所謂初始化:就是為數(shù)組中的數(shù)組元素分配內(nèi)存空間,并為每個(gè)元素賦值
2.2 數(shù)組初始化方法
動(dòng)態(tài)初始化
動(dòng)態(tài)初始化:初始化時(shí)只指定數(shù)組長(zhǎng)度,由系統(tǒng)為數(shù)組分配初始值
格式:
數(shù)組類型[ ] 變量名 = new 數(shù)據(jù)類型[數(shù)組長(zhǎng)度];
范例:
int[ ] arr = new int[3];
示例代碼:
int [] arr = new int[3]; /* * 左邊: * int:說(shuō)明數(shù)組中的元素是int類型 * []:說(shuō)明這是一個(gè)數(shù)組 * arr:這是一個(gè)數(shù)組的名稱 * 右邊: * new:為數(shù)組申請(qǐng)內(nèi)存空間 * int:說(shuō)明數(shù)組中元素類型是int類型 * []:說(shuō)明這是一個(gè)數(shù)組 * 3:數(shù)組長(zhǎng)度,其實(shí)就是數(shù)組中元素個(gè)數(shù) * */
3.數(shù)組元素訪問(wèn)
3.1 數(shù)組元素訪問(wèn)
* 數(shù)組變量訪問(wèn)方式
* 格式:
數(shù)組名
* 數(shù)組內(nèi)部保存數(shù)據(jù)的訪問(wèn)方式
* 格式:
數(shù)組名[索引]
* 索引是數(shù)組中數(shù)據(jù)的編號(hào)方式
* 作用:索引用于訪問(wèn)數(shù)組中的數(shù)據(jù)使用,數(shù)組名[索引]等同于變量名,是一種特殊的變量名
* 特征:索引是從0開始,是連續(xù)的,是逐一增加每次加1的。
//輸出數(shù)組名 System.out.println(arr);//[I@dcf3e99 //輸出數(shù)組中的元素 System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]);
4.內(nèi)存分配
4.1 java中的內(nèi)存分配
棧內(nèi)存:存儲(chǔ)局部空間
堆內(nèi)存:存儲(chǔ)new出來(lái)的內(nèi)容(實(shí)體,對(duì)象)
4.2 數(shù)組內(nèi)存圖(單個(gè)數(shù)組)
//輸出數(shù)組名 System.out.println(arr);//[I@dcf3e99 //輸出數(shù)組中的元素 System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]); //給數(shù)組中的元素賦值 arr[0]=10; arr[2]=100; //輸出數(shù)組中的元素 System.out.println(arr); System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]);
控制臺(tái)輸出結(jié)果:
4.3 多個(gè)數(shù)組內(nèi)存圖
5.數(shù)組初始化之靜態(tài)初始化
靜態(tài)初始化: 初始化時(shí)指定每個(gè)元素的初始值,由系統(tǒng)決定數(shù)組長(zhǎng)度
格式:
數(shù)據(jù)類型[ ] 變量名 = new 數(shù)據(jù)類型[ ] {數(shù)據(jù)1, 數(shù)據(jù)2, 數(shù)據(jù)3....};
范例:
int [ ] arr = new int [ ]{1,2,3};
簡(jiǎn)化格式:
數(shù)據(jù)類型 [ ] 變量名 = {數(shù)據(jù)1,數(shù)據(jù)2,數(shù)據(jù)3....};
范例:
int[ ] 變量名 = {1,2,3};
示例代碼:
int [] arr = {1,2,3}; //輸出數(shù)組名 System.out.println(arr);//[I@dcf3e99 //輸出數(shù)組中的元素 System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]);
6.數(shù)組操作的兩個(gè)常見小問(wèn)題
1. 索引越界:訪問(wèn)了數(shù)組中不存在的索引對(duì)應(yīng)的元素,造成索引越界問(wèn)題
int[ ] arr = new int [3];
system out.println(arr[3]);
2.空指針異常:訪問(wèn)的數(shù)組已經(jīng)不在指向堆內(nèi)存的數(shù)據(jù),造成空指針異常
int[ ] arr = new int [3];
system out.println(arr[2]);
arr = null;
system out.println(arr[0]);
3.null:空值,引用數(shù)據(jù)類型默認(rèn)值,表示不指向任何有效對(duì)象
7.數(shù)組常見操作
7.1 遍歷
通用格式
int []arr={...}; for(int x=0;x<arr.length;x++){ arr[x]; //對(duì)arr[x]進(jìn)行操作 }
7.2 獲取數(shù)組元素個(gè)數(shù)
格式:
數(shù)組名.length
范例:
arr.length
7.3 獲取最值
示例代碼:
public static void main(String[] args) { // TODO Auto-generated method stub //定義數(shù)組 int []arr={15,66,75,42,85,45,87,99,10}; //定義一個(gè)變量,用于保存最大值 //取數(shù)組中第一個(gè)數(shù)據(jù)作為變量初始值 int max= arr[0]; //與數(shù)組中剩余元素逐個(gè)比對(duì),并將最大值保存在變量中 for(int x=0;x<arr.length;x++){ if(arr[x]>max){ max=arr[x]; } } //循環(huán)結(jié)束后在控制臺(tái)打印變量值 System.out.println("max:"+max); }
到此這篇關(guān)于由淺入深快速掌握J(rèn)ava 數(shù)組的使用的文章就介紹到這了,更多相關(guān)Java 數(shù)組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot@Profile注解和Spring?EL(多環(huán)境注入)
為了方便, Spring還提供了 Profile機(jī)制, 使我們可以很方便地實(shí)現(xiàn)各個(gè)環(huán)境之間的切換,在使用DI來(lái)依賴注入的時(shí)候,能夠根據(jù)@profile標(biāo)明的環(huán)境,將注入符合當(dāng)前運(yùn)行環(huán)境的相應(yīng)的bean,本文通過(guò)示例代碼介紹SpringBoot@Profile注解和Spring?EL,需要的朋友可以參考下2024-02-02微信小程序 springboot后臺(tái)如何獲取用戶的openid
這篇文章主要介紹了微信小程序 springboot后臺(tái)如何獲取用戶的openid,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09springboot+redis實(shí)現(xiàn)微博熱搜排行榜的示例代碼
本文主要介紹了springboot+redis實(shí)現(xiàn)微博熱搜排行榜的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05Java Socket實(shí)現(xiàn)單線程通信的方法示例
這篇文章主要介紹了Java Socket實(shí)現(xiàn)單線程通信的方法,結(jié)合具體實(shí)例形式分析了java socket單線程通信的原理與客戶端、服務(wù)器端相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-06-06java實(shí)現(xiàn)文件導(dǎo)入導(dǎo)出
這篇文章主要介紹了java實(shí)現(xiàn)文件導(dǎo)入導(dǎo)出的方法和具體示例代碼,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下2016-04-04SpringCloud feign微服務(wù)調(diào)用之間的異常處理方式
這篇文章主要介紹了SpringCloud feign微服務(wù)調(diào)用之間的異常處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06關(guān)于JAVA11中圖片與BASE64相互轉(zhuǎn)換的實(shí)現(xiàn)
這篇文章主要介紹了關(guān)于JAVA11中圖片與BASE64相互轉(zhuǎn)換的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04java開發(fā)中基于JDBC連接數(shù)據(jù)庫(kù)實(shí)例總結(jié)
這篇文章主要介紹了java開發(fā)中基于JDBC連接數(shù)據(jù)庫(kù)的方法,以實(shí)例形式較為詳細(xì)的總結(jié)分析了Java使用JDBC的具體步驟與注意事項(xiàng),并附帶了一個(gè)完整實(shí)例加以說(shuō)明,需要的朋友可以參考下2015-11-11