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

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) 互聯(lián)網(wǎng)面試常見(jiàn)Java泛型筆試題

互聯(lián)網(wǎng)面試常見(jiàn)Java泛型筆試題

更新時(shí)間:2020-09-08 17:04:26 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2854次

Java中的泛型是什么?使用泛型的好處是什么?

泛型是Java SE 1.5的新特性,泛型的本質(zhì)是參數(shù)化類型,也就是說(shuō)所操作的數(shù)據(jù)類型被指定為一個(gè)參數(shù)。

好處:

1、類型安全,提供編譯期間的類型檢測(cè)

2、前后兼容

3、泛化代碼,代碼可以更多的重復(fù)利用

4、性能較高,用GJ(泛型Java)編寫的代碼可以為java編譯器和虛擬機(jī)帶來(lái)更多的類型信息,這些信息對(duì)java程序做進(jìn)一步優(yōu)化提供條件。

Java的泛型是如何工作的?什么是類型擦除?如何工作?

1、類型檢查:在生成字節(jié)碼之前提供類型檢查

2、類型擦除:所有類型參數(shù)都用他們的限定類型替換,包括類、變量和方法(類型擦除)

3、如果類型擦除和多態(tài)性發(fā)生了沖突時(shí),則在子類中生成橋方法解決

4、如果調(diào)用泛型方法的返回類型被擦除,則在調(diào)用該方法時(shí)插入強(qiáng)制類型轉(zhuǎn)換

類型擦除:

所有類型參數(shù)都用他們的限定類型替換:

比如T->Object?extends BaseClass->BaseClass

如何工作:

泛型是通過(guò)類型擦除來(lái)實(shí)現(xiàn)的,編譯器在編譯時(shí)擦除了所有類型相關(guān)的信息,所以在運(yùn)行時(shí)不存在任何類型相關(guān)的信息。例如List<String>在運(yùn)行時(shí)僅用一個(gè)List來(lái)表示。這樣做的目的,是確保能和Java 5之前的版本開(kāi)發(fā)二進(jìn)制類庫(kù)進(jìn)行兼容。你無(wú)法在運(yùn)行時(shí)訪問(wèn)到類型參數(shù),因?yàn)榫幾g器已經(jīng)把泛型類型轉(zhuǎn)換成了原始類型。根據(jù)你對(duì)這個(gè)泛型問(wèn)題的回答情況,你會(huì)得到一些后續(xù)提問(wèn),比如為什么泛型是由類型擦除來(lái)實(shí)現(xiàn)的或者給你展示一些會(huì)導(dǎo)致編譯器出錯(cuò)的錯(cuò)誤泛型代碼。

你可以把List傳遞給一個(gè)接受List參數(shù)的方法嗎?

 對(duì)任何一個(gè)不太熟悉泛型的人來(lái)說(shuō),這個(gè)Java泛型題目看起來(lái)令人疑惑,因?yàn)檎Э雌饋?lái)String是一種Object,所以 List應(yīng)當(dāng)可以用在需要List的地方,但是事實(shí)并非如此。真這樣做的話會(huì)導(dǎo)致編譯錯(cuò)誤。如果你再深一步考慮,你會(huì)發(fā)現(xiàn)Java這樣做是有意義的,因?yàn)長(zhǎng)ist可以存儲(chǔ)任何類型的對(duì)象包括String, Integer等等,而List卻只能用來(lái)存儲(chǔ)String s。

ListobjectList;

List stringList;

objectList = stringList; //compilation error incompatible types

如何阻止Java中的類型未檢查的警告?

如果你把泛型和原始類型混合起來(lái)使用,例如下列代碼,java 5的javac編譯器會(huì)產(chǎn)生類型未檢查的警告,例如

List rawList = newArrayList()

注意: Hello.java使用了未檢查或稱為不安全的操作;

這種警告可以使用@SuppressWarnings(“unchecked”)注解來(lái)屏蔽。

Java中List和原始類型List之間的區(qū)別?

原始類型和帶參數(shù)類型之間的主要區(qū)別是,在編譯時(shí)編譯器不會(huì)對(duì)原始類型進(jìn)行類型安全檢查,卻會(huì)對(duì)帶參數(shù)的類型進(jìn)行檢查,通過(guò)使用Object作為類型,可以告知編譯器該方法可以接受任何類型的對(duì)象,比如String或Integer。

這道題的考察點(diǎn)在于對(duì)泛型中原始類型的正確理解。它們之間的第二點(diǎn)區(qū)別是,你可以把任何帶參數(shù)的類型傳遞給原始類型List,但卻不能把List傳遞給接受 List的方法,因?yàn)闀?huì)產(chǎn)生編譯錯(cuò)誤。

編寫一段泛型程序來(lái)實(shí)現(xiàn)LRU緩存?

對(duì)于喜歡Java編程的人來(lái)說(shuō)這相當(dāng)于是一次練習(xí)。給你個(gè)提示,LinkedHashMap可以用來(lái)實(shí)現(xiàn)固定大小的LRU緩存,當(dāng)LRU緩存已經(jīng)滿了的時(shí)候,它會(huì)把最老的鍵值對(duì)移出緩存。

LinkedHashMap提供了一個(gè)稱為removeEldestEntry()的方法,該方法會(huì)被put() 和putAll()調(diào)用來(lái)刪除最老的鍵值對(duì)。當(dāng)然,如果你已經(jīng)編寫了一個(gè)可運(yùn)行的JUnit測(cè)試,你也可以隨意編寫你自己的實(shí)現(xiàn)代碼。

互聯(lián)網(wǎng)面試常見(jiàn)Java泛型筆試題

以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“互聯(lián)網(wǎng)面試常見(jiàn)Java泛型筆試題”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

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

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 免费成人在线观看视频 | 日韩精品午夜视频一区二区三区 | 天天爽天天操 | 免费高清一级欧美片在线观看 | 亚洲国产欧美日韩一区二区 | 亚欧视频在线观看 | 777色狠狠一区二区三区香蕉 | 波多在线视频 | 一级理伦 | 日本欧美高清视频 | 成人在线h | 国产一级特黄aa大片免费 | 亚洲an日韩专区在线 | 波多野结衣免费视频观看 | 老司机深夜影院入口aaaa | 日本欧美国产 | 日韩欧美视频免费观看 | 亚洲国产成人久久综合区 | 男人的午夜影院 | 三级亚洲 | 1插菊花| 美女天天干 | 91se在线看片国产免费观看 | 久久免费视频一区 | 看中国国产一级毛片真人视频 | 狠狠的撞进去嗯啊h女强男视频 | 国产精品九九免费视频 | 国产精品视频国产永久视频 | 精品一区二区视频在线观看 | 中文字幕综合在线 | 免费成人高清视频 | 欧美一级专区免费大片 | 国产成人精品日本亚洲11 | 欧美乱爱| www午夜视频 | 久久成人国产精品免费 | 免费韩国伦理片在线观看 | 国产精品天天操 | 亚洲欧美日韩天堂 | 久久午夜网 | 中文字幕欧美日韩高清 |