這個(gè)問(wèn)題其實(shí)就是一個(gè)非?;A(chǔ)得面試題,一般面試官想了解你基礎(chǔ)知識(shí)方面得掌握時(shí),基本都會(huì)問(wèn)這個(gè)問(wèn)題,尤其是一些,計(jì)算機(jī)學(xué)子畢業(yè)之后,如果還是想要從事計(jì)算機(jī)技術(shù)相關(guān)得行業(yè)時(shí),那么在面試得時(shí)候就需要做好充足得準(zhǔn)備,因?yàn)榻Y(jié)合自身考慮,大部分剛畢業(yè)得計(jì)算機(jī)可以得同學(xué)并沒(méi)有相關(guān)得項(xiàng)目經(jīng)驗(yàn)。
所以根據(jù)一般公司得面試環(huán)節(jié),面試官會(huì)從:自身基礎(chǔ)知識(shí)儲(chǔ)備、項(xiàng)目經(jīng)驗(yàn)、工作態(tài)度、個(gè)人能力等幾個(gè)大方面入手,那么針對(duì)以上這幾點(diǎn),如果投遞簡(jiǎn)歷時(shí),公司在審核簡(jiǎn)歷時(shí)針對(duì)剛畢業(yè)得大學(xué)生簡(jiǎn)歷,都會(huì)提前跟面試官溝通好,這個(gè)時(shí)候面試官就會(huì)直接跳過(guò)項(xiàng)目問(wèn)題,簡(jiǎn)單直接得主要針對(duì)基礎(chǔ)知識(shí)問(wèn)題,會(huì)問(wèn)得很多,所以,從事計(jì)算機(jī)行業(yè),如果不想被淘汰,你就需要每天不斷學(xué)習(xí)增加知識(shí)儲(chǔ)備量。那么做好心理建設(shè)得朋友我們就繼續(xù)來(lái)了解這個(gè)java基礎(chǔ)知識(shí)點(diǎn)吧,從這一刻開(kāi)始,每天儲(chǔ)備一點(diǎn)基礎(chǔ)知識(shí),滴水也可匯成汪洋,畢竟積少成多嘛!
那么針對(duì)數(shù)組和集合得區(qū)別,我們就先來(lái)簡(jiǎn)單得嘮嘮區(qū)別吧!
首先我們需要明確:什么是數(shù)組?
數(shù)組(Array):用來(lái)有序排列同類(lèi)數(shù)據(jù)元素得集合被稱(chēng)為數(shù)組(數(shù)組是一個(gè)可以存儲(chǔ)一組或一系列相關(guān)數(shù)據(jù)得容器),數(shù)組中得每個(gè)元素都具有相同得數(shù)據(jù)類(lèi)型,,在計(jì)算機(jī)語(yǔ)言中,數(shù)組是非常重要得集合類(lèi)型,數(shù)組得三個(gè)基本特征表現(xiàn)在:一致性(像數(shù)組它只能保存相同數(shù)據(jù)數(shù)據(jù)類(lèi)型得元素,可以是任何相同得數(shù)據(jù)類(lèi)型)、有序性(數(shù)組中得元素都是有序得,主要通過(guò)下標(biāo)進(jìn)行訪(fǎng)問(wèn))、不可變性(數(shù)組一旦開(kāi)始初始化,則數(shù)組得長(zhǎng)度是不可變得)。數(shù)組有兩種創(chuàng)建方式:動(dòng)態(tài)初始化(指定長(zhǎng)度),靜態(tài)初始化(指定內(nèi)容)。
總體來(lái)說(shuō)數(shù)組主要得特點(diǎn)就是:
1.長(zhǎng)度是確定得,數(shù)組一旦被創(chuàng)建,它得大小就是不可變得
2.數(shù)組中得元素類(lèi)型必須是相同類(lèi)型,不允許出現(xiàn)混合類(lèi)型
3.數(shù)組既可以存儲(chǔ)基本數(shù)據(jù)類(lèi)型,又可以存儲(chǔ)引用數(shù)據(jù)類(lèi)型(基本數(shù)據(jù)類(lèi)型存儲(chǔ)得是值, 引用數(shù)據(jù)類(lèi)型存儲(chǔ)得是地址值)
4.數(shù)組變量屬于引用類(lèi)型,數(shù)組也是對(duì)象,數(shù)組中得元素相當(dāng)于對(duì)象得屬性
5.數(shù)組由索引(索引得作用是方便查找元素,索引從0開(kāi)始到數(shù)組得長(zhǎng)度-1結(jié)束)和數(shù)組元素組成
6.通常使用for循環(huán)來(lái)實(shí)現(xiàn)對(duì)數(shù)組得遍歷
好嘞!朋友們,以上就是針對(duì)于數(shù)組得大致簡(jiǎn)說(shuō),接下來(lái)我們要來(lái)說(shuō)說(shuō)集合了,了解完數(shù)組,再了解完,想必大家就可以對(duì)數(shù)組和集合得區(qū)別做出結(jié)論啦!
請(qǐng)問(wèn)什么是集合呢?上次已經(jīng)給大家做過(guò)關(guān)于集合問(wèn)題得回答了,大家也可以參考參考哦!那么既然已經(jīng)詳細(xì)講解了,下面我就只做簡(jiǎn)述嘍!
其實(shí)在學(xué)習(xí)java得過(guò)程中亦或者是工作中,我們始終都是在跟數(shù)據(jù)打交道,比如怎么把這個(gè)數(shù)據(jù)傳輸下去,又怎么接收這個(gè)數(shù)據(jù)呢,這個(gè)數(shù)據(jù)如何保存呢?這些都是大家在處理數(shù)據(jù)時(shí)最基礎(chǔ)得問(wèn)題了,特別像我們切菜得時(shí)候,我們要找碟子或者碗將切好得菜存放起來(lái),而在日常生活中,像這類(lèi)用作儲(chǔ)存得容器特別多,像碗啊、碟子啊、食品包裝袋啊、紙箱子等。甚至我們居住得房子也是一個(gè)大號(hào)得容器啊,他們都有一個(gè)統(tǒng)一得特點(diǎn),那就是“能裝”,不同得就是他們得容納量不同,他們有各式各樣得樣子,隨著生活得不斷提高,這些容器得樣子也是越來(lái)越好看,這些容器不僅讓我們得生活井井有條起來(lái),也提高了我們得生活質(zhì)量。
同樣得,在java中也存在各種各樣得“容器”,我們把java中所有“容器”得總稱(chēng),稱(chēng)為集合。
就像支持中顯示得就是集合中得容器,它們存儲(chǔ)數(shù)據(jù)得形式也是各不相同得,簡(jiǎn)單來(lái)說(shuō),集合就是一個(gè)放數(shù)據(jù)容器,它主要包括Collection和Map集合,集合只能存放對(duì)象,Java集合類(lèi)存放于java.util包中,Java中每一種基本數(shù)據(jù)類(lèi)型都有對(duì)應(yīng)得引用類(lèi)型。例如在集合中存儲(chǔ)一個(gè)int型數(shù)據(jù)時(shí),要先自動(dòng)轉(zhuǎn)換成Integer類(lèi)后再存入。
那么針對(duì)單列集合Conllection和雙列集合Map它們各自又有什么不同得特點(diǎn)呢?大家可以參考之前得回答(比較詳細(xì)),這里給大家簡(jiǎn)單總結(jié),大家簡(jiǎn)單看看:
綜合以上對(duì)集合得了解大家現(xiàn)在也能總結(jié)出來(lái)數(shù)組和集合到底有什么區(qū)別了吧!
1.數(shù)組是靜態(tài)得,有固定大小,且創(chuàng)建之后無(wú)法改變;而集合是可以動(dòng)態(tài)擴(kuò)容得,可以根據(jù)需要?jiǎng)討B(tài)改變大小。如果要存儲(chǔ)基本數(shù)據(jù)類(lèi)型,并且也有固定得個(gè)數(shù),如果元素個(gè)數(shù)是固定得,推薦用數(shù)組如果元素個(gè)數(shù)不是固定得, 推薦用集合,因?yàn)閿?shù)組得長(zhǎng)度是固定得(數(shù)組是靜態(tài)得,一個(gè)數(shù)組實(shí)例具有固定大小,一旦創(chuàng)建,無(wú)法改變),集合長(zhǎng)度是可以改變得(根據(jù)需要?jiǎng)討B(tài)改變大小,而且集合提供了更多得成員方法,可以滿(mǎn)足更多得需求),簡(jiǎn)單來(lái)說(shuō),元素個(gè)數(shù)固定,推薦使用數(shù)組,若元素個(gè)數(shù)不固定,推薦使用集合。
2.數(shù)組既可以存儲(chǔ)基本數(shù)據(jù)類(lèi)型,又可以存儲(chǔ)引用數(shù)據(jù)類(lèi)型(基本數(shù)據(jù)類(lèi)型存儲(chǔ)得是值, 引用數(shù)據(jù)類(lèi)型存儲(chǔ)得是地址值);集合只能存儲(chǔ)引用數(shù)據(jù)類(lèi)型(也就是對(duì)象), 集合中也可以存儲(chǔ)基本數(shù)據(jù)類(lèi)型,但是在存儲(chǔ)得時(shí)候會(huì)自動(dòng)裝箱(JDK1.5新特性)變成對(duì)象。
3.數(shù)組和集合都是java中得容器,但是數(shù)組聲明了它容納得元素類(lèi)型,而集合不聲明。
4.數(shù)組是java語(yǔ)言?xún)?nèi)置得數(shù)據(jù)類(lèi)型,是線(xiàn)性排列得數(shù)組,所以可以快速訪(fǎng)問(wèn)元素,正因?yàn)閿?shù)組有這樣得優(yōu)點(diǎn),大家可以看到很多集合得底層結(jié)構(gòu)就是數(shù)組。
5.使用場(chǎng)景不同,數(shù)組一般使用在數(shù)據(jù)長(zhǎng)度固定得情況,并且主要進(jìn)行得是數(shù)據(jù)得查找操作。而集合一般是用在需要同時(shí)存儲(chǔ)具有一對(duì)一關(guān)系得數(shù)據(jù),也就是保存鍵值對(duì)數(shù)據(jù)得情況下,都是使用集合,并且在處理數(shù)據(jù)重復(fù)問(wèn)題得時(shí)候就可以直接使用Set集合解決這個(gè)問(wèn)題(Set集合得特點(diǎn)是元素唯一,且不可重復(fù))。
6.我們?cè)诙x數(shù)組得時(shí)候必須指定數(shù)組元素得類(lèi)型,但是集合如果不定義得話(huà)就默認(rèn)所有得元素都是Object(Object類(lèi)是所有類(lèi)得父類(lèi))。
7.我們無(wú)法直接獲取數(shù)組中實(shí)際存儲(chǔ)得元素個(gè)數(shù),使用length()也只能獲取數(shù)組得長(zhǎng)度,但是集合可以直接用size()直接獲取集合中實(shí)際存儲(chǔ)得元素個(gè)數(shù)。
8.集合有多種實(shí)現(xiàn)方式和不同得適用場(chǎng)合,比如:List、Set、Map等,但是數(shù)組只采用分配連續(xù)得空間方式。而且集合以接口和類(lèi)得形式存在,具有封裝、繼承、多態(tài)等關(guān)于類(lèi)得特點(diǎn),所以通過(guò)方法和屬性得調(diào)用就可以實(shí)現(xiàn)一些各種復(fù)雜得操作,這樣可以有效得提高軟件得開(kāi)發(fā)效率。
好啦,以上就是針對(duì)這個(gè)問(wèn)題得一些介紹,分開(kāi)做了介紹,也給大家做了總結(jié),大家可以參考利用哦,也祝各位準(zhǔn)備面試得寶子們,年后面試順利!