為Android 開(kāi)發(fā)面試 “68” 問(wèn)添加答案
基礎(chǔ)面試相關(guān)
1刀疙、接口的意義-百度
接口會(huì)出現(xiàn)猎物,最關(guān)鍵的原因應(yīng)該是Java中向上轉(zhuǎn)型的出現(xiàn)淆衷,因?yàn)橄蛏限D(zhuǎn)型验残,子類(lèi)中一些父類(lèi)中不存在的方法(或者說(shuō)不共用的方法)便不能繼續(xù)調(diào)用了。這樣就很麻煩纠修,我們需要子類(lèi)中的方法胳嘲,但是這下該怎么辦呢?
第一種在父類(lèi)中加子類(lèi)的方法扣草。但是了牛,這個(gè)方法在父類(lèi)中其實(shí)真的沒(méi)有必要,方法函數(shù)體都不需要辰妙。所以會(huì)用抽象方法鹰祸,這樣就有了抽象方法的誕生∶芑耄可是就算這樣了蛙婴,問(wèn)題還是沒(méi)有解決,因?yàn)檎娴奶闊┝硕疲绻衅渌淖宇?lèi)要繼承父類(lèi)街图,也難免會(huì)有向上轉(zhuǎn)型的時(shí)候浇衬,那么,這個(gè)時(shí)候難道要一直往父類(lèi)中加抽象方法么餐济?顯然不合理耘擂!
于是就有了第二種方法,接口便誕生了颤介,這也解釋了為什么接口中都是抽象的方法梳星!所以有了接口赞赖,子類(lèi)中需要的方法滚朵,但是父類(lèi)中沒(méi)有的方法可以直接用接口來(lái)完成,也就不用再修改父類(lèi)的方法前域,在多人合作完成一項(xiàng)工程的時(shí)候也更加的方便辕近。
2、抽象類(lèi)的意義
對(duì)代碼的維護(hù)和重用
抽象類(lèi)往往用來(lái)表征對(duì)問(wèn)題領(lǐng)域進(jìn)行分析匿垄、設(shè)計(jì)中得出的抽象概念移宅,是對(duì)一系列看上去不同,但是本質(zhì)上相同的具體概念的抽象椿疗。具體分析如下:
1漏峰、因?yàn)槌橄箢?lèi)不能實(shí)例化對(duì)象,所以必須要有子類(lèi)來(lái)實(shí)現(xiàn)它之后才能使用届榄。這樣就可以把一些具有相同屬性和方法的組件進(jìn)行抽象浅乔,這樣更有利于代碼和程序的維護(hù)。
比如本科和研究生可以抽象成學(xué)生铝条,他們有相同的屬性和方法靖苇。這樣當(dāng)你對(duì)其中某個(gè)類(lèi)進(jìn)行修改時(shí)會(huì)受到父類(lèi)的限制,這樣就會(huì)提醒開(kāi)發(fā)人員有些東西不能進(jìn)行隨意修改班缰,這樣可以對(duì)比較重要的東西進(jìn)行統(tǒng)一的限制贤壁,也算是一種保護(hù),對(duì)維護(hù)會(huì)有很大的幫助埠忘。
2脾拆、當(dāng)又有一個(gè)具有相似的組件產(chǎn)生時(shí),只需要實(shí)現(xiàn)該抽象類(lèi)就可以獲得該抽象類(lèi)的那些屬性和方法莹妒。
比如學(xué)校又新產(chǎn)生了專(zhuān)科生這類(lèi)學(xué)生名船,那么專(zhuān)科生直接繼承學(xué)生,然后對(duì)自己特有的屬性和方法進(jìn)行補(bǔ)充即可动羽。這樣對(duì)于代碼的重用也是很好的體現(xiàn)包帚。
所以,Java中抽象類(lèi)對(duì)于代碼的維護(hù)和重用有很好的幫助运吓,也是Java面向?qū)ο蟮囊粋€(gè)重要體現(xiàn)渴邦。
3疯趟、內(nèi)部類(lèi)的作用-樂(lè)視
其實(shí)使用內(nèi)部類(lèi)最大的優(yōu)點(diǎn)就在于它能夠非常好的解決多重繼承的問(wèn)題,但是如果我們不需要解決多重繼承問(wèn)題谋梭,那么我們自然可以使用其他的編碼方式信峻,但是使用內(nèi)部類(lèi)還能夠?yàn)槲覀儙?lái)如下特性(摘自《Think in java》):
1、內(nèi)部類(lèi)可以用多個(gè)實(shí)例瓮床,每個(gè)實(shí)例都有自己的狀態(tài)信息盹舞,并且與其他外圍對(duì)象的信息相互獨(dú)立。
2隘庄、在單個(gè)外圍類(lèi)中踢步,可以讓多個(gè)內(nèi)部類(lèi)以不同的方式實(shí)現(xiàn)同一個(gè)接口,或者繼承同一個(gè)類(lèi)丑掺。
3获印、創(chuàng)建內(nèi)部類(lèi)對(duì)象的時(shí)刻并不依賴(lài)于外圍類(lèi)對(duì)象的創(chuàng)建。
4街州、內(nèi)部類(lèi)并沒(méi)有令人迷惑的“is-a”關(guān)系兼丰,他就是一個(gè)獨(dú)立的實(shí)體。
5唆缴、內(nèi)部類(lèi)提供了更好的封裝鳍征,除了該外圍類(lèi),其他類(lèi)都不能訪(fǎng)問(wèn)面徽。
4艳丛、Java 虛擬機(jī)的特性-百度-樂(lè)視
5、哪些情況下的對(duì)象會(huì)被垃圾回收機(jī)制處理掉-美團(tuán)-小米
1斗忌、垃圾回收機(jī)制原理
2质礼、幾種方式