一区二区三区中文国产亚洲_另类视频区第一页_日韩精品免费视频_女人免费视频_国产综合精品久久亚洲

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > java不支持哪些數(shù)組?

java不支持哪些數(shù)組?

來源:千鋒教育
發(fā)布人:qyf
時(shí)間: 2023-03-22 17:51:00 1679478660

  概念

  所謂的數(shù)組(Array),就是數(shù)據(jù)的組合,簡單地說就是一個(gè)存儲(chǔ)容器,里面可以包含多個(gè)數(shù)據(jù)。該容器在內(nèi)存中開辟了一塊連續(xù)的存儲(chǔ)空間,可以用來保存相同類型的多個(gè)數(shù)據(jù)。給大家舉個(gè)栗子,下圖的這個(gè)東西你見過嗎?

  有的人說這不是雞蛋嗎?其實(shí)壹哥想讓你看的是存儲(chǔ)這些雞蛋的”容器“--雞蛋托!一個(gè)雞蛋托有多個(gè)存儲(chǔ)格子,每個(gè)格子只能存儲(chǔ)一個(gè)雞蛋,并且這些格子只能用來存儲(chǔ)雞蛋,不能存儲(chǔ)其他的東西。一個(gè)雞蛋托可以存儲(chǔ)的雞蛋數(shù)量是有限的,不能無限存儲(chǔ)。

  其實(shí)Java里的數(shù)組就類似于是”雞蛋托“,數(shù)組中存儲(chǔ)的數(shù)據(jù)元素就是一個(gè)個(gè)的”雞蛋“。一個(gè)數(shù)組占據(jù)了內(nèi)存中的一片連續(xù)空間,只能存儲(chǔ)相同類型的數(shù)據(jù),數(shù)組有一定的存儲(chǔ)空間。我們?cè)趧?chuàng)建數(shù)組時(shí),需要先聲明數(shù)組的類型,之后該數(shù)組中只能存儲(chǔ)指定類型的數(shù)據(jù)。

  ●我們把存儲(chǔ)在數(shù)組中的每一個(gè)數(shù)據(jù),稱為”數(shù)據(jù)元素“。這些數(shù)據(jù)元素會(huì)按著一定的順序排列存儲(chǔ),并賦予每個(gè)數(shù)據(jù)元素對(duì)應(yīng)的編號(hào)。我們可以直接通過編號(hào)(索引、下標(biāo))的方式來調(diào)用指定位置上的數(shù)據(jù)元素,查找速度會(huì)很快。

  ●數(shù)組本身是引用類型,但數(shù)組中的數(shù)據(jù)元素可以是任何數(shù)據(jù)類型,包括基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。

  ●數(shù)組創(chuàng)建時(shí)需要指定一個(gè)名稱,并會(huì)在內(nèi)存中開辟一整塊連續(xù)的內(nèi)存空間,數(shù)組名引用的就是這塊連續(xù)空間的首地址(第一個(gè)地址)。

  ●數(shù)組創(chuàng)建后,長度一旦確定,就不能再被修改。

  java支持的數(shù)組

  1.基本類型數(shù)組:包括 boolean、byte、short、char、int、long、float 和 double 類型的數(shù)組。

  2.引用類型數(shù)組:包括任何類、接口、數(shù)組類型的對(duì)象的數(shù)組。

  java不支持的數(shù)組

  1.C/C++ 中的指針數(shù)組,因?yàn)?Java 中沒有指針。

  2.多維變長數(shù)組,例如 C/C++ 中的動(dòng)態(tài)二維數(shù)組。在 Java 中,多維數(shù)組的每個(gè)維度的大小必須在定義時(shí)確定,且在程序運(yùn)行時(shí)無法改變。

  3.超過 JVM 堆空間大小限制的大型數(shù)組。Java 數(shù)組的最大大小受 JVM 堆空間大小的限制。如果嘗試創(chuàng)建一個(gè)超過 JVM 堆空間大小限制的數(shù)組,則會(huì)引發(fā) OutOfMemoryError 異常。

  4.Java不支持泛型數(shù)組

  java為什么不支持泛型數(shù)組

  Java不支持泛型數(shù)組是由于以下兩個(gè)原因:

  1.類型擦除

  在Java中,泛型使用類型擦除來實(shí)現(xiàn)。在編譯時(shí),所有泛型類型都會(huì)被替換為它們的限定類型或Object類型,因此在運(yùn)行時(shí)無法獲得泛型類型的信息。這意味著在創(chuàng)建泛型數(shù)組時(shí),編譯器無法確切知道數(shù)組元素的類型。例如,以下代碼無法編譯:

  List[] arr = new List[10];

  因?yàn)榫幾g器無法確定List在運(yùn)行時(shí)的類型。

  2.安全性

  如果Java允許泛型數(shù)組,那么可能會(huì)導(dǎo)致類型安全問題。例如,假設(shè)以下代碼可以編譯:

  List[] arr = new List[10];

  Object[] objArr = arr;

  objArr[0] = new ArrayList();

  String s = arr[0].get(0); // ClassCastException

  由于數(shù)組是協(xié)變的,因此我們可以將一個(gè)數(shù)組賦值給另一個(gè)數(shù)組,但是在這個(gè)例子中,我們把一個(gè)ArrayList賦值給一個(gè)List[],這樣就破壞了類型安全,因?yàn)槲覀兛梢栽诰幾g時(shí)避免類型錯(cuò)誤,但在運(yùn)行時(shí)會(huì)拋出ClassCastException異常。

  為了避免這些問題,Java禁止使用泛型數(shù)組。如果需要?jiǎng)?chuàng)建泛型容器,可以使用集合框架,例如List、Set和Map。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
python字符串截取?

在Python中,字符串是一種非常常見的數(shù)據(jù)類型,它可以用來表示文本、數(shù)字、符號(hào)等內(nèi)容。在實(shí)際應(yīng)用中,我們經(jīng)常需要對(duì)字符串進(jìn)行截取,以便獲取...詳情>>

2023-11-02 17:56:27
Python socket C/S結(jié)構(gòu)的聊天室應(yīng)用實(shí)現(xiàn)?

隨著互聯(lián)網(wǎng)的發(fā)展,聊天室應(yīng)用成為人們?nèi)粘I钪惺殖R姷囊环N社交方式。Python語言的Socket模塊是實(shí)現(xiàn)網(wǎng)絡(luò)通信的重要工具,可以輕松地實(shí)現(xiàn)C/...詳情>>

2023-11-02 17:53:38
用while求1到100的奇數(shù)和?

在計(jì)算機(jī)編程中,循環(huán)語句是非常重要的一部分。而while語句是其中最基本也是最常用的一種。它的作用是在滿足一定條件的情況下,重復(fù)執(zhí)行一段代...詳情>>

2023-11-02 17:50:57
python創(chuàng)建一個(gè)集合?

在Python中,集合是一種無序且不重復(fù)的數(shù)據(jù)類型,可以用于存儲(chǔ)一組元素。創(chuàng)建一個(gè)集合非常簡單,只需要使用大括號(hào){}或者set()函數(shù)即可。使用大...詳情>>

2023-11-02 17:34:02
linux改文件屬主命令?

Linux文件相關(guān)命令1、命令一:cat cat命令應(yīng)該是在Linux中查看文件內(nèi)容最常見的命令了。使用cat命令會(huì)打印指定文件的所有內(nèi)容到標(biāo)準(zhǔn)輸出上,比...詳情>>

2023-10-31 19:58:15