黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專(zhuān)注Java教育14年 全國(guó)咨詢(xún)/投訴熱線(xiàn):400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) Java基礎(chǔ)部分組成27個(gè)知識(shí)點(diǎn)

Java基礎(chǔ)部分組成27個(gè)知識(shí)點(diǎn)

更新時(shí)間:2020-06-10 15:26:43 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2285次

1、JAVA中的幾種基本數(shù)據(jù)類(lèi)型是什么,各自占用多少字節(jié)。

Java基礎(chǔ)部分組成27個(gè)知識(shí)點(diǎn)

2、String類(lèi)能被繼承嗎,為什么

不能。在Java中,只要是被定義為final的類(lèi),也可以說(shuō)是被final修飾的類(lèi),就是不能被繼承的。

3、String,Stringbuffer,StringBuilder的區(qū)別。

Java基礎(chǔ)部分組成27個(gè)知識(shí)點(diǎn)

4、ArrayList和LinkedList有什么區(qū)別。

簡(jiǎn)單的區(qū)別:

(1)ArrayList是實(shí)現(xiàn)了基于動(dòng)態(tài)數(shù)組的數(shù)據(jù)結(jié)構(gòu),LinkedList基于鏈表的數(shù)據(jù)結(jié)構(gòu)。(LinkedList是雙向鏈表,有next也有previous)

(2)對(duì)于隨機(jī)訪(fǎng)問(wèn)get和set,ArrayList覺(jué)得優(yōu)于LinkedList,因?yàn)長(zhǎng)inkedList要移動(dòng)指針。

(3)對(duì)于新增和刪除操作add和remove,LinedList比較占優(yōu)勢(shì),因?yàn)锳rrayList要移動(dòng)數(shù)據(jù)。

深度的區(qū)別:

(1)對(duì)ArrayList和LinkedList而言,在列表末尾增加一個(gè)元素所花的開(kāi)銷(xiāo)都是固定的。對(duì)ArrayList而言,主要是在內(nèi)部數(shù)組中增加一項(xiàng),指向所添加的元素,偶爾可能會(huì)導(dǎo)致對(duì)數(shù)組重新進(jìn)行分配;而對(duì)LinkedList而言,這個(gè)開(kāi)銷(xiāo)是統(tǒng)一的,分配一個(gè)內(nèi)部Entry對(duì)象。

(2)在ArrayList的中間插入或刪除一個(gè)元素意味著這個(gè)列表中剩余的元素都會(huì)被移動(dòng);而在LinkedList的中間插入或刪除一個(gè)元素的開(kāi)銷(xiāo)是固定的。

(3)LinkedList不支持高效的隨機(jī)元素訪(fǎng)問(wèn)。

(4)ArrayList的空間浪費(fèi)主要體現(xiàn)在在list列表的結(jié)尾預(yù)留一定的容量空間,而LinkedList的空間花費(fèi)則體現(xiàn)在它的每一個(gè)元素都需要消耗相當(dāng)?shù)目臻g

5、講講類(lèi)的實(shí)例化順序。

問(wèn)題:比如父類(lèi)靜態(tài)數(shù)據(jù),構(gòu)造函數(shù),字段,子類(lèi)靜態(tài)數(shù)據(jù),構(gòu)造函數(shù),字段,當(dāng)new的時(shí)候,他們的執(zhí)行順序。

答案:類(lèi)加載器實(shí)例化時(shí)進(jìn)行的操作步驟(加載–>連接->初始化)。父類(lèi)靜態(tài)變量、父類(lèi)靜態(tài)代碼塊、子類(lèi)靜態(tài)變量、子類(lèi)靜態(tài)代碼塊、父類(lèi)非靜態(tài)變量(父類(lèi)實(shí)例成員變量)、父類(lèi)構(gòu)造函數(shù)、子類(lèi)非靜態(tài)變量(子類(lèi)實(shí)例成員變量)、子類(lèi)構(gòu)造函數(shù)。

6、用過(guò)哪些Map類(lèi),都有什么區(qū)別。

問(wèn)題:比如HashMap是線(xiàn)程安全的嗎,并發(fā)下使用的Map是什么,他們內(nèi)部原理分別是什么,比如存儲(chǔ)方式,hashcode,擴(kuò)容,默認(rèn)容量等。答案:不安全,并發(fā)下使用ConcurrentHashMap。

7、JAVA8的ConcurrentHashMap為什么放棄了分段鎖?

原因:通過(guò)JDK的源碼和官方文檔看來(lái),他們認(rèn)為的棄用分段鎖的原因由以下幾點(diǎn):1、加入多個(gè)分段鎖浪費(fèi)內(nèi)存空間。2、生產(chǎn)環(huán)境中,map在放入時(shí)競(jìng)爭(zhēng)同一個(gè)鎖的概率非常小,分段鎖反而會(huì)造成更新等操作的長(zhǎng)時(shí)間等待。3、為了提高GC的效率

既然棄用了分段鎖,那么一定由新的線(xiàn)程安全方案,我們來(lái)看看源碼是怎么解決線(xiàn)程安全的呢?CAS

首先通過(guò)hash找到對(duì)應(yīng)鏈表過(guò)后,查看是否是第一個(gè)object,如果是,直接用cas原則插入,無(wú)需加鎖,然后如果不是鏈表第一個(gè)object,則直接用鏈表第一個(gè)object加鎖,這里加的鎖是synchronized,雖然效率不如ReentrantLock,但節(jié)約了空間,這里會(huì)一直用第一個(gè)object為鎖,直到重新計(jì)算map大小,比如擴(kuò)容或者操作了第一個(gè)object為止。

8、ConcurrentHashMap(JDK1.8)為什么要使用synchronized而不是如ReentranLock這樣的可重入鎖?

可以從下面幾個(gè)方面講述:鎖的粒度首先鎖的粒度并沒(méi)有變粗,甚至變得更細(xì)了。每當(dāng)擴(kuò)容一次,ConcurrentHashMap的并發(fā)度就擴(kuò)大一倍。Hash沖突JDK1.7中,ConcurrentHashMap從過(guò)二次hash的方式(Segment->HashEntry)能夠快速的找到查找的元素。在1.8中通過(guò)鏈表加紅黑樹(shù)的形式彌補(bǔ)了put、get時(shí)的性能差距。擴(kuò)容JDK1.8中,在ConcurrentHashmap進(jìn)行擴(kuò)容時(shí),其他線(xiàn)程可以通過(guò)檢測(cè)數(shù)組中的節(jié)點(diǎn)決定是否對(duì)這條鏈表(紅黑樹(shù))進(jìn)行擴(kuò)容,減小了擴(kuò)容的粒度,提高了擴(kuò)容的效率。

為什么是synchronized,而不是可重入鎖

減少內(nèi)存開(kāi)銷(xiāo)假設(shè)使用可重入鎖來(lái)獲得同步支持,那么每個(gè)節(jié)點(diǎn)都需要通過(guò)繼承AQS來(lái)獲得同步支持。但并不是每個(gè)節(jié)點(diǎn)都需要獲得同步支持的,只有鏈表的頭節(jié)點(diǎn)(紅黑樹(shù)的根節(jié)點(diǎn))需要同步,這無(wú)疑帶來(lái)了巨大內(nèi)存浪費(fèi)。

獲得JVM的支持可重入鎖畢竟是API這個(gè)級(jí)別的,后續(xù)的性能優(yōu)化空間很小。synchronized則是JVM直接支持的,JVM能夠在運(yùn)行時(shí)作出相應(yīng)的優(yōu)化措施:鎖粗化、鎖消除、鎖自旋等等。這就使得synchronized能夠隨著JDK版本的升級(jí)而不改動(dòng)代碼的前提下獲得性能上的提升。

9、有沒(méi)有有順序的Map實(shí)現(xiàn)類(lèi),如果有,他們是怎么保證有序的。

Hashmap和Hashtable都不是有序的。TreeMap和LinkedHashmap都是有序的。(TreeMap默認(rèn)是key升序,LinkedHashmap默認(rèn)是數(shù)據(jù)插入順序)TreeMap是基于比較器Comparator來(lái)實(shí)現(xiàn)有序的。LinkedHashmap是基于鏈表來(lái)實(shí)現(xiàn)數(shù)據(jù)插入有序的。

10、抽象類(lèi)和接口的區(qū)別,類(lèi)可以繼承多個(gè)類(lèi)么,接口可以繼承多個(gè)接口么,類(lèi)可以實(shí)現(xiàn)多個(gè)接口么。

區(qū)別:1、抽象類(lèi)和接口都不能直接實(shí)例化,如果要實(shí)例化,抽象類(lèi)變量必須指向?qū)崿F(xiàn)所有抽象方法的子類(lèi)對(duì)象,接口變量必須指向?qū)崿F(xiàn)所有接口方法的類(lèi)對(duì)象。2、抽象類(lèi)要被子類(lèi)繼承,接口要被類(lèi)實(shí)現(xiàn)。3、接口只能做方法申明,抽象類(lèi)中可以做方法申明,也可以做方法實(shí)現(xiàn)4、接口里定義的變量只能是公共的靜態(tài)的常量,抽象類(lèi)中的變量是普通變量。5、抽象類(lèi)里的抽象方法必須全部被子類(lèi)所實(shí)現(xiàn),如果子類(lèi)不能全部實(shí)現(xiàn)父類(lèi)抽象方法,那么該子類(lèi)只能是抽象類(lèi)。同樣,一個(gè)實(shí)現(xiàn)接口的時(shí)候,如不能全部實(shí)現(xiàn)接口方法,那么該類(lèi)也只能為抽象類(lèi)。6、抽象方法只能申明,不能實(shí)現(xiàn)。abstract void abc();不能寫(xiě)成abstract void abc(){}。7、抽象類(lèi)里可以沒(méi)有抽象方法8、如果一個(gè)類(lèi)里有抽象方法,那么這個(gè)類(lèi)只能是抽象類(lèi)9、抽象方法要被實(shí)現(xiàn),所以不能是靜態(tài)的,也不能是私有的。10、接口可繼承接口,并可多繼承接口,但類(lèi)只能單根繼承。

類(lèi)不能繼承多個(gè)類(lèi)接口可以繼承多個(gè)接口類(lèi)可以實(shí)現(xiàn)多個(gè)接口

Java基礎(chǔ)部分組成27個(gè)知識(shí)點(diǎn)

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java基礎(chǔ)部分組成27個(gè)知識(shí)點(diǎn)”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€(xiàn)咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 香蕉视频污视频 | 成人区在线观看免费视频 | 一 级 黄 色 片生活片 | 人人上人人干 | 日韩亚洲欧美在线观看 | 日本韩国欧美三级 | 欧美特黄a级高清免费看片 欧美特黄a级高清免费大片 | 欧美在线香蕉在线现视频 | 国产亚洲高清不卡在线观看 | 一级特色大黄美女播放网站 | 美女黄站 | 综合五月天堂 | 91桃色国产线观看免费 | 色老头永久免费网站 | 无码免费一区二区三区免费播放 | 成人免费va视频 | 久草亚洲视频 | 亚洲午夜精品一区二区 | 黄色激情视频在线观看 | 国产成人精品999在线观看 | 无遮羞无删减肉动漫在线观看 | 欧美不卡在线视频 | 97视频在线免费 | 免费看特级淫片日本 | 欧美日韩性高爱潮视频 | 在线观看国产免费高清不卡 | 精品视频在线免费 | free中国性xxxxhd | 欧美成人免费 | 一级毛片免费观看不卡视频 | 久久久久久麻豆 | 在线亚洲精品防屏蔽 | 亚洲欧美日产综合一区二区三区 | 99视频在线免费看 | 性欧美高清另类videoso | 亚洲国产精品久久久久久 | 国产日产高清欧美一区二区三区 | 亚洲欧美日韩中文字幕在线一 | 久久99免费视频 | 999成人精品视频在线 | 国产91色拍|