Java創(chuàng)建數(shù)組的幾種方式總結(jié)
1、一維數(shù)組的聲明方式:
type[] arrayName; 或 type arrayName[];
附:推薦使用第一種格式,因?yàn)榈谝环N格式具有更好的可讀性,表示type[]是一種引用類型(數(shù)組)而不是type類型。建議不要使用第二種方式
下面是典型的聲明數(shù)組的方式:
// 聲明整型數(shù)組 int[] intArray0 ; int intArray1 []; // 聲明浮點(diǎn)型數(shù)組 float floatArray0 []; float[] floatArray1 ; // 聲明布爾型數(shù)組 boolean boolArray0 []; boolean[] boolArray1 ; // 聲明字符型數(shù)組 char charArray0 []; char[] charArray1 ; // 聲明字符串?dāng)?shù)組 String stringArray0[]; String[] stringArray1; // 錯(cuò)誤的聲明數(shù)組的方式,聲明數(shù)組的時(shí)候不能指定其大小 // int [5] intErrorArray0; // int intErrorArray1[5];
注:Java語言中聲明數(shù)組時(shí)不能指定其長度(數(shù)組中元素的個(gè)數(shù)),這是因?yàn)閿?shù)組是一種引用類型的變量,,因此使用它定義一個(gè)變量時(shí),僅僅表示定義了一個(gè)引用變量(也就是定一個(gè)了一個(gè)指針),這個(gè)引用變量還未指向任何有效的內(nèi)存,所以定義數(shù)組時(shí)不能指定數(shù)組的長度。而且由于定義數(shù)組僅僅只是定一個(gè)引用變量,并未指向任何有效的內(nèi)存空間,所以還沒有內(nèi)存空間來存儲數(shù)組元素,因此這個(gè)數(shù)組也不能使用,只有在數(shù)組進(jìn)行初始化后才可以使用。
2、一維數(shù)組的創(chuàng)建
Java中使用關(guān)鍵字new創(chuàng)建數(shù)組對象,格式為:數(shù)組名 = new 數(shù)組元素的類型 [數(shù)組元素的個(gè)數(shù)]
// 創(chuàng)建數(shù)組,如果在創(chuàng)建的同時(shí)不初始化數(shù)組則必須指定其大小
intArray0 = new int[3];
// 錯(cuò)誤的創(chuàng)建數(shù)組的方式,如果創(chuàng)建數(shù)組時(shí)不指定大小則必須初始化
// intArray1 = new int[];
// 創(chuàng)建數(shù)組時(shí),不指定數(shù)組大小則必須在創(chuàng)建的同時(shí)初始化數(shù)組
intArray1 = new int[]{0,1,2};
使用new創(chuàng)建數(shù)組對象但是分配數(shù)組時(shí)會自動為數(shù)組分配默認(rèn)值,具體如下:
System.out.println( "intArray0[0]=" + intArray0 [0]);
floatArray0 = new float[3];
System. out.println("floatArray0[0]=" + floatArray0[0]);
boolArray0 = new boolean[3];
System. out.println("boolArray0[0]=" + boolArray0[0]);
charArray0 = new char[3];
System. out.println("charArray0[0]=" + charArray0[0]);
stringArray0 = new String[3];
System. out.println("stringArray0[0]=" + stringArray0[0]);
輸出如下:
intArray0[0]=0 floatArray0[0]=0.0 boolArray0[0]=false charArray0[0]= stringArray0[0]=null
附:一旦使用new關(guān)鍵字為數(shù)組分配了內(nèi)存空間,每個(gè)內(nèi)存空間存儲的內(nèi)容就是數(shù)組元素的值,也就是數(shù)組元素就有了初始值,即使這個(gè)內(nèi)存空間存儲的內(nèi)容是空,這個(gè)空也是一個(gè)值null。也就是說不可能只分配內(nèi)容空間而不賦初始值,即使自己在創(chuàng)建數(shù)組對象(分配內(nèi)容空間)時(shí)沒有指定初始值,系統(tǒng)也會自動為其分配
附:諸如基礎(chǔ)數(shù)據(jù)類型的包裝類,其默認(rèn)的初始化值均為null,因?yàn)榛A(chǔ)數(shù)據(jù)類型的包裝類創(chuàng)建的數(shù)組屬于引用數(shù)組(對象數(shù)組),對象數(shù)組默認(rèn)的初始化值都是null
3、一維數(shù)組的初始化
數(shù)組的初始化分為靜態(tài)初始化、動態(tài)初始化和默認(rèn)初始化:
靜態(tài)初始化是數(shù)組在初始化時(shí)由程序員顯式指定每個(gè)數(shù)組元素的初始值而數(shù)組長度由系統(tǒng)決定。
動態(tài)初始化是數(shù)組在初始化時(shí)只指定數(shù)組長度,由系統(tǒng)為數(shù)組元素分配初始值。
a、數(shù)組靜態(tài)初始化的語法格式:
arrayName = new type[]{element1,element2,element3...}
或者使用簡化的語法格式:
arrayName = {element1,element2,element3...}
b、數(shù)組動態(tài)初始化的語法格式:
arrayName = new type[length];
附:靜態(tài)初始化時(shí)不能指定元素個(gè)數(shù),而動態(tài)初始化時(shí)則必須指定元素個(gè)數(shù)。靜態(tài)初始化時(shí)數(shù)組能夠知道元素的個(gè)數(shù)所以不需要指定,而動態(tài)初始化時(shí)數(shù)組元素個(gè)數(shù)未知因此必須指定。
// 靜態(tài)初始化
int intArray2 [] = new int[]{20,21,22};
// 靜態(tài)初始化簡化方式
int intArray3 [] = {30,31,32};
// 動態(tài)初始化
int[] intArray4 = new int[3];
// 錯(cuò)誤寫法:靜態(tài)初始化不能指定元素個(gè)數(shù)
// int intErrorArray5[] = new int[3]{50,51,52};
// 錯(cuò)誤寫法:動態(tài)初始化必須指定元素個(gè)數(shù)
// int intErrorArray6[] = new int[];
注:一維數(shù)組這一塊記住兩點(diǎn),數(shù)組聲明的時(shí)候是不能指定大小的,也就是說等號左邊的中括號中不能包含數(shù)字。另外一旦使用new關(guān)鍵字那么肯定在內(nèi)存中為數(shù)組分配了空間,則必然數(shù)組有默認(rèn)值。數(shù)組是對象數(shù)據(jù)類型
注:不要靜態(tài)初始化和動態(tài)初始化同時(shí)使用,也就是說不要再進(jìn)行數(shù)組初始化時(shí),既指定數(shù)組長度,也為每個(gè)數(shù)組元素分配初始值。
4、數(shù)組進(jìn)行動態(tài)初始化時(shí)系統(tǒng)分配初始值的規(guī)則
數(shù)組元素類型是基本類型中的整數(shù)類型(byte、short、int、long),則數(shù)組元素的值是0
數(shù)組元素類型是基本類型中的浮點(diǎn)類型(float、double),則數(shù)組元素的值是0.0
數(shù)組元素類型是基本類型中的字符類型(char),則數(shù)組元素的值是'\u0000'
數(shù)組元素類型是基本類型中的布爾類型(boolean),則數(shù)組元素的值是false
數(shù)組元素類型是基本類型中的引用類型(類、接口、數(shù)組),則數(shù)組元素的值是null
附:這部分源代碼:
package javabase;
public class CreateArray {
public static void main(String args[]){
/**************數(shù)組的聲明*******************/
// 聲明整型數(shù)組
int[] intArray0 ;
int intArray1 [];
// 聲明浮點(diǎn)型數(shù)組
float floatArray0 [];
float[] floatArray1 ;
// 聲明布爾型數(shù)組
boolean boolArray0 [];
boolean[] boolArray1 ;
// 聲明字符型數(shù)組
char charArray0 [];
char[] charArray1 ;
// 聲明字符串?dāng)?shù)組
String stringArray0[];
String[] stringArray1;
// 錯(cuò)誤的聲明數(shù)組的方式,聲明數(shù)組的時(shí)候不能指定其大小
// int [5] intErrorArray0;
// int intErrorArray1[5];
/*********************數(shù)組的創(chuàng)建***********************/
// 創(chuàng)建數(shù)組,如果在創(chuàng)建的同時(shí)不初始化數(shù)組則必須指定其大小
intArray0 = new int[3];
// 錯(cuò)誤的創(chuàng)建數(shù)組的方式,如果創(chuàng)建數(shù)組時(shí)不指定大小則必須初始化
// intArray1 = new int[];
// 創(chuàng)建數(shù)組時(shí),不指定數(shù)組大小則必須在創(chuàng)建的同時(shí)初始化數(shù)組
intArray1 = new int[]{0,1,2};
System. out.println("intArray0[0]=" + intArray0[0]);
floatArray0 = new float[3];
System. out.println("floatArray0[0]=" + floatArray0[0]);
boolArray0 = new boolean[3];
System. out.println("boolArray0[0]=" + boolArray0[0]);
charArray0 = new char[3];
System. out.println("charArray0[0]=" + charArray0[0]);
stringArray0 = new String[3];
System. out.println("stringArray0[0]=" + stringArray0[0]);
/**********************數(shù)組的初始化*************************/
// 靜態(tài)初始化
int intArray2 [] = new int[]{20,21,22};
// 靜態(tài)初始化簡化方式
int intArray3 [] = {30,31,32};
// 動態(tài)初始化
int[] intArray4 = new int[3];
// 錯(cuò)誤寫法:靜態(tài)初始化不能指定元素個(gè)數(shù)
// int intErrorArray5[] = new int[3]{50,51,52};
// 錯(cuò)誤寫法:動態(tài)初始化必須指定元素個(gè)數(shù)
// int intErrorArray6[] = new int[];
System. out.println("intArray2[0]=" +intArray2 [0]);
System. out.println("intArray3[0]=" +intArray3 [0]);
System. out.println("intArray4[0]=" +intArray4 [0]);
}
}
以上就是小編為大家?guī)淼腏ava創(chuàng)建數(shù)組的幾種方式總結(jié)的全部內(nèi)容了,希望對大家有所幫助,多多支持腳本之家~
相關(guān)文章
如何正確控制springboot中bean的加載順序小結(jié)篇
這篇文章主要介紹了如何正確控制springboot中bean的加載順序總結(jié),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
SpringBoot在RequestBody中使用枚舉參數(shù)案例詳解
這篇文章主要介紹了SpringBoot在RequestBody中使用枚舉參數(shù)案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09
Java實(shí)現(xiàn)斷點(diǎn)下載服務(wù)端與客戶端的示例代碼
這篇文章主要為大家介紹了如何實(shí)現(xiàn)服務(wù)端(Spring Boot)與客戶端(Android)的斷點(diǎn)下載與下載續(xù)傳功能,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-08-08
Springboot3+Vue3實(shí)現(xiàn)JWT登錄鑒權(quán)功能
JWT用于在網(wǎng)絡(luò)應(yīng)用間安全的傳遞消息,它以緊湊且自包含的方式,通過JSON對象在各方之間傳遞經(jīng)過驗(yàn)證的信息,這篇文章主要介紹了Springboot3+Vue3實(shí)現(xiàn)JWT登錄鑒權(quán)功能,需要的朋友可以參考下2025-03-03
java實(shí)現(xiàn)表格tr拖動的實(shí)例(分享)
下面小編就為大家分享一篇java實(shí)現(xiàn)表格tr拖動的實(shí)例。具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12
windows系統(tǒng)使用mvn命令打包并指定jdk路徑方式
這篇文章主要介紹了windows系統(tǒng)使用mvn命令打包并指定jdk路徑方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
Spring中的@RestController注解詳細(xì)解析
這篇文章主要介紹了Spring中的@RestController注解詳細(xì)解析,@RestController 是 Spring Framework 中的一個(gè)注解,用于標(biāo)識一個(gè)類為 RESTful Web 服務(wù)的控制器(Controller),處理 HTTP 請求并返回相應(yīng)的數(shù)據(jù),2024-01-01

