最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java創(chuàng)建數(shù)組、賦值的四種方式詳解(聲明+創(chuàng)建+初始化?)

 更新時(shí)間:2024年04月15日 09:31:51   作者:尋求出路的程序媛  
數(shù)組是一種數(shù)據(jù)結(jié)構(gòu),用來存儲(chǔ)同一類型值的集合一旦創(chuàng)建了數(shù)組,就不能再改變它的長(zhǎng)度,下面這篇文章主要給大家介紹了關(guān)于Java創(chuàng)建數(shù)組、賦值的四種方式(聲明+創(chuàng)建+初始化?)的相關(guān)資料,需要的朋友可以參考下

一、創(chuàng)建數(shù)組的四種方式

以int數(shù)據(jù)類型為例

@Test
public void testNewArray() {
    //創(chuàng)建數(shù)組

    //法一
    int[] arr1 = new int[]{1,2,3,4,5};
    System.out.println(arr1.length + "   " + arr1[2]);   //5   3
    //Arrays.toString(Object[])  將數(shù)組的元素生成字符串,數(shù)組的各個(gè)元素使用方括號(hào)括著 [ ]
    System.out.println(Arrays.toString(arr1));   //[1, 2, 3, 4, 5]

    //法二 聲明、分配空間并賦值
    int[] arr2 = {1,2,3,4};
    System.out.println(arr2.length + "   " + arr2[2]);   //4   3

    //法三 聲明數(shù)組時(shí)指定元素個(gè)數(shù),然后賦值。此時(shí)所有的元素值均為0
    int[] arr3 = new int[4];
    System.out.println(arr3.length + "   " + arr3[3]);  //4   0

    //法四 聲明數(shù)組名、開辟空間、賦值
    int[] arr4;
    arr4 = new int[]{0,1,2,3};
    System.out.println(arr4.length + "   " + arr4[2]);   //4   2

    //創(chuàng)建多維數(shù)組
    int[][] doubleArr1 = {{1,2,3},{4,5,6},{7,8,9}};
    int m = 3, n = 4, q = 5;
    int[][] doubleArr2 = new int[m][n];  //其中n可以省略
    int[][][] tArr = new int[m][n][q];   //其中n、q可以省略
}

注意:

  • new 數(shù)據(jù)類型[]{},其中花括號(hào)可以省去,但要在[ ]中填寫數(shù)組的個(gè)數(shù);
  • 創(chuàng)建多維數(shù)組時(shí) new后面第一個(gè)方括號(hào)中的元素?cái)?shù)量不能省略

二、詳解

1、一維數(shù)組的聲明方式:

type[] arrayName; 或 type arrayName[];

推薦使用第一種格式,因?yàn)榈谝环N格式具有更好的可讀性,表示type[]是一種引用類型(數(shù)組)而不是type類型。建議不要使用第二種方式

int[] intArr;

注:Java語(yǔ)言中聲明數(shù)組時(shí)不能指定其長(zhǎng)度(數(shù)組中元素的個(gè)數(shù)),這是因?yàn)閿?shù)組是一種引用類型的變量,因此使用它定義一個(gè)變量時(shí),僅僅表示定義了一個(gè)引用變量(也就是定一個(gè)了一個(gè)指針),這個(gè)引用變量還未指向任何有效的內(nèi)存,所以定義數(shù)組時(shí)不能指定數(shù)組的長(zhǎng)度。而且由于定義數(shù)組僅僅只是定一個(gè)引用變量,并未指向任何有效的內(nèi)存空間,所以還沒有內(nèi)存空間來存儲(chǔ)數(shù)組元素,因此這個(gè)數(shù)組也不能使用,只有在數(shù)組進(jìn)行初始化后才可以使用。

2、一維數(shù)組的創(chuàng)建

Java中使用關(guān)鍵字new創(chuàng)建數(shù)組對(duì)象,格式為:數(shù)組名 = new 數(shù)組元素的類型 [數(shù)組元素的個(gè)數(shù)]

// 創(chuàng)建數(shù)組,如果在創(chuàng)建的同時(shí)不初始化數(shù)組則必須指定其大小
intArr = new int[5];
// 創(chuàng)建數(shù)組時(shí),不指定數(shù)組大小則必須在創(chuàng)建的同時(shí)初始化數(shù)組
intArray1 = new int[]{0,1,2};
  • 一旦使用new關(guān)鍵字為數(shù)組分配了內(nèi)存空間,每個(gè)內(nèi)存空間存儲(chǔ)的內(nèi)容就是數(shù)組元素的值,也就是數(shù)組元素就有了初始值,即使這個(gè)內(nèi)存空間存儲(chǔ)的內(nèi)容是空,這個(gè)空也是一個(gè)值null。也就是說不可能只分配內(nèi)容空間而不賦初始值,即使自己在創(chuàng)建數(shù)組對(duì)象(分配內(nèi)容空間)時(shí)沒有指定初始值,系統(tǒng)也會(huì)自動(dòng)為其分配
  • 基礎(chǔ)數(shù)據(jù)類型的包裝類,其默認(rèn)的初始化值均為null,因?yàn)榛A(chǔ)數(shù)據(jù)類型的包裝類創(chuàng)建的數(shù)組屬于引用數(shù)組(對(duì)象數(shù)組),對(duì)象數(shù)組默認(rèn)的初始化值都是null。

3、一維數(shù)組的初始化

數(shù)組的初始化分為靜態(tài)初始化、動(dòng)態(tài)初始化和默認(rèn)初始化:

  • 靜態(tài)初始化是數(shù)組在初始化時(shí)由程序員顯式指定每個(gè)數(shù)組元素的初始值而數(shù)組長(zhǎng)度由系統(tǒng)決定。
  • 動(dòng)態(tài)初始化是數(shù)組在初始化時(shí)只指定數(shù)組長(zhǎng)度,由系統(tǒng)為數(shù)組元素分配初始值。
//a、數(shù)組靜態(tài)初始化的語(yǔ)法格式:
arrayName = new type[]{element1,element2,element3...};
// 或者使用簡(jiǎn)化的語(yǔ)法格式:
arrayName = {element1,element2,element3...}

//b、數(shù)組動(dòng)態(tài)初始化的語(yǔ)法格式:
arrayName = new type[length];

附:靜態(tài)初始化時(shí)不能指定元素個(gè)數(shù),而動(dòng)態(tài)初始化時(shí)則必須指定元素個(gè)數(shù)。靜態(tài)初始化時(shí)數(shù)組能夠知道元素的個(gè)數(shù)所以不需要指定,而動(dòng)態(tài)初始化時(shí)數(shù)組元素個(gè)數(shù)未知 因此必須指定。

// 靜態(tài)初始化
int intArray2 [] = new int []{20,21,22};
// 靜態(tài)初始化簡(jiǎn)化方式
int intArray3 [] = {30,31,32};

// 動(dòng)態(tài)初始化
int [] intArray4 = new int [3];           
// 錯(cuò)誤寫法:靜態(tài)初始化不能指定元素個(gè)數(shù)
// int intErrorArray5[] = new int[3]{50,51,52};
// 錯(cuò)誤寫法:動(dòng)態(tài)初始化必須指定元素個(gè)數(shù)
// int intErrorArray6[] = new int[];

注:一維數(shù)組這一塊記住兩點(diǎn),數(shù)組聲明的時(shí)候是不能指定大小的,也就是說等號(hào)左邊的中括號(hào)中不能包含數(shù)字。另外一旦使用new關(guān)鍵字那么肯定在內(nèi)存中為數(shù)組分配了空間,則必然數(shù)組有默認(rèn)值。數(shù)組是對(duì)象數(shù)據(jù)類型

注:不要靜態(tài)初始化和動(dòng)態(tài)初始化同時(shí)使用,也就是說不要再進(jìn)行數(shù)組初始化時(shí),既指定數(shù)組長(zhǎng)度,也為每個(gè)數(shù)組元素分配初始值。

4、數(shù)組進(jìn)行動(dòng)態(tài)初始化時(shí)系統(tǒng)分配初始值的規(guī)則

  • 數(shù)組元素類型是基本類型中的整數(shù)類型(byte、short、int、long),則數(shù)組元素的初始化默認(rèn)值是0
  • 數(shù)組元素類型是基本類型中的浮點(diǎn)類型(float、double),則數(shù)組元素的值是0.0
  • 數(shù)組元素類型是基本類型中的字符類型(char),則數(shù)組元素的值是’\u0000’
  • 數(shù)組元素類型是基本類型中的布爾類型(boolean),則數(shù)組元素的值是false
  • 數(shù)組元素類型是基本類型中的引用類型(類、接口、數(shù)組),則數(shù)組元素的值是null

詳情見:http://m.fzitv.net/program/319567ebl.htm

三、數(shù)組存儲(chǔ)的弊端

  • 一旦初始化,其長(zhǎng)度就不可修改,長(zhǎng)度不夠用、開辟很大的長(zhǎng)度會(huì)導(dǎo)致空間浪費(fèi)
  • 數(shù)組中提供的方法非常有限。添加、刪除、插入等操作 效率很低【為了保證元素的內(nèi)存地址連續(xù),添加或刪除元素時(shí),涉及到前移或者后移】
  • 擴(kuò)容麻煩,只能新建一個(gè)更大的數(shù)組,將元素一個(gè)一個(gè)移進(jìn)去,效率低
  • 獲取數(shù)組中實(shí)際元素的個(gè)數(shù)的需求,數(shù)組沒有現(xiàn)成的屬性或方法可用
  • 數(shù)組存儲(chǔ)數(shù)據(jù)的特點(diǎn):有序、可重復(fù)。對(duì)于無序、不可重復(fù)的需求,不能滿足

為解決以上問題、靈活運(yùn)用,提出Java容器的概念

參考:http://m.fzitv.net/article/93955.htm

總結(jié)

到此這篇關(guān)于Java創(chuàng)建數(shù)組、賦值的四種方式(聲明+創(chuàng)建+初始化 )的文章就介紹到這了,更多相關(guān)Java創(chuàng)建數(shù)組、賦值方式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring中的底層架構(gòu)核心概念類型轉(zhuǎn)換器詳解

    Spring中的底層架構(gòu)核心概念類型轉(zhuǎn)換器詳解

    這篇文章主要介紹了Spring中的底層架構(gòu)核心概念類型轉(zhuǎn)換器詳解,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • Java簽名加密與驗(yàn)證實(shí)現(xiàn)過程

    Java簽名加密與驗(yàn)證實(shí)現(xiàn)過程

    本文詳細(xì)介紹了Java中簽名加密驗(yàn)證簽名和SHA1withRSAUtil證書簽名算法的實(shí)現(xiàn)原理及流程,通過描述數(shù)據(jù)準(zhǔn)備、哈希計(jì)算、簽名生成、數(shù)據(jù)封裝、數(shù)據(jù)傳輸和服務(wù)器驗(yàn)證的完整過程,展示了如何在Java中確保數(shù)據(jù)傳輸?shù)陌踩院万?yàn)證
    2025-10-10
  • springboot接口接收數(shù)組及多個(gè)參數(shù)的問題及解決

    springboot接口接收數(shù)組及多個(gè)參數(shù)的問題及解決

    這篇文章主要介紹了springboot接口接收數(shù)組及多個(gè)參數(shù)的問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Java?spring?MVC環(huán)境中實(shí)現(xiàn)WebSocket的示例代碼

    Java?spring?MVC環(huán)境中實(shí)現(xiàn)WebSocket的示例代碼

    這篇文章主要介紹了Java?spring?MVC環(huán)境中實(shí)現(xiàn)WebSocket,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • Java?try?catch語(yǔ)句異常處理詳解

    Java?try?catch語(yǔ)句異常處理詳解

    這篇文章主要給大家介紹了關(guān)于Java?try?catch語(yǔ)句異常處理的相關(guān)資料,Java中的try-catch用于捕獲和處理異常,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Mac下用Java調(diào)用c/c++的思路詳解

    Mac下用Java調(diào)用c/c++的思路詳解

    這篇文章主要介紹了Mac下用Java調(diào)用c/c++的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Spring Security靈活的PasswordEncoder加密方式解析

    Spring Security靈活的PasswordEncoder加密方式解析

    這篇文章主要介紹了Spring Security靈活的PasswordEncoder加密方式解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • MyBatis實(shí)現(xiàn)批量插入數(shù)據(jù),多重forEach循環(huán)

    MyBatis實(shí)現(xiàn)批量插入數(shù)據(jù),多重forEach循環(huán)

    這篇文章主要介紹了MyBatis實(shí)現(xiàn)批量插入數(shù)據(jù),多重forEach循環(huán)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Maven編譯時(shí)出現(xiàn)中文亂碼的完整解決教程

    Maven編譯時(shí)出現(xiàn)中文亂碼的完整解決教程

    這篇文章主要為大家詳細(xì)介紹了Maven編譯時(shí)出現(xiàn)中文亂碼的完整解決教程,適合Windows 用戶,Maven 編譯項(xiàng)目時(shí)終端或 IDEA 出現(xiàn)中文亂碼的人群,快跟隨小編一起了解下吧
    2025-10-10
  • Java封裝好的mail包發(fā)送電子郵件的類

    Java封裝好的mail包發(fā)送電子郵件的類

    本文給大家分享了2個(gè)java封裝好的mail包發(fā)送電子郵件的類,并附上使用方法,小伙伴們可以根據(jù)自己的需求自由選擇。
    2016-01-01

最新評(píng)論

女性| 鄂温| 台前县| 温宿县| 丰镇市| 松溪县| 从化市| 宜宾县| 南宫市| 尉犁县| 应用必备| 滁州市| 梓潼县| 上犹县| 德清县| 彰武县| 尼勒克县| 蓬溪县| 临沂市| 连平县| 庆城县| 临邑县| 上犹县| 焉耆| 交口县| 密山市| 开原市| 定安县| 桂平市| 论坛| 微山县| 扶风县| 徐水县| 紫阳县| 西乌珠穆沁旗| 金秀| 双流县| 大厂| 如东县| 郯城县| 武隆县|