資源描述:
《2018年最新java面試題[卷]整理》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、WORD整理版1基礎(chǔ)篇1.1基本功1.1.1面向?qū)ο筇卣鞣庋b,繼承,多態(tài)和抽象1、封裝封裝給對象提供了隱藏內(nèi)部特性和行為的能力。對象提供一些能被其他對象訪問的方法來改變它內(nèi)部的數(shù)據(jù)。在Java當(dāng)中,有3種修飾符:public,private和protected。每一種修飾符給其他的位于同一個包或者不同包下面對象賦予了不同的訪問權(quán)限。下面列出了使用封裝的一些好處:1)通過隱藏對象的屬性來保護對象內(nèi)部的狀態(tài)。2)提高了代碼的可用性和可維護性,因為對象的行為可以被單獨的改變或者是擴展。3)禁止對象之間的不良交互提高模塊化2、繼承繼承給對象提供了從基類獲取字段和方法的能力。繼承提供了代碼的
2、重用行,也可以在不修改類的情況下給現(xiàn)存的類添加新特性。3、多態(tài)多態(tài)是編程語言給不同的底層數(shù)據(jù)類型做相同的接口展示的一種能力。一個多態(tài)類型上的操作可以應(yīng)用到其他類型的值上面。4、抽象抽象是把想法從具體的實例中分離出來的步驟,因此,要根據(jù)他們的功能而不是實現(xiàn)細(xì)節(jié)來創(chuàng)建類。Java支持創(chuàng)建只暴漏接口而不包含方法實現(xiàn)的抽象的類。這種抽象技術(shù)的主要目的是把類的行為和實現(xiàn)細(xì)節(jié)分離開。1.1.2final,finally,finalize的區(qū)別1、final修飾符(關(guān)鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為abstract的,
3、又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。2、finally在異常處理時提供finally塊來執(zhí)行任何清除操作。如果拋出一個異常,那么相匹配的catch子句就會執(zhí)行,然后控制就會進(jìn)入finally塊(如果有的話)。3、finalize方法名。Java技術(shù)允許使用finalize()方法在垃圾收集器將對象從內(nèi)存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調(diào)用的。它是在
4、Object類中定義的,因此所有的類都繼承了它。子類覆蓋finalize()方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize()方法是在垃圾收集器刪除對象之前對這個對象調(diào)用的。參考學(xué)習(xí)資料WORD整理版1.1.1int和Integer有什么區(qū)別int是基本數(shù)據(jù)類型?,而Integer是其包裝類,注意是一個類。?為什么要提供包裝類呢????一是為了在各種類型間轉(zhuǎn)化,通過各種方法的調(diào)用。否則你無法直接通過變量轉(zhuǎn)化。1.1.2重載和重寫的區(qū)別override(重寫) 1.方法名、參數(shù)、返回值相同?! ?.子類方法不能縮小父類方法的訪問權(quán)限?! ?.子類方法不能拋出比父類方法更多
5、的異常(但子類方法可以不拋出異常)。 4.存在于父類和子類之間。 5.方法被定義為final不能被重寫。overload(重載) 1.參數(shù)類型、個數(shù)、順序至少有一個不相同?! ?.不能重載只有返回值不同的方法名。 3.存在于父類和子類、同類中。區(qū)別點重載重寫(覆寫)英文OverloadingOveriding定義方法名稱相同,參數(shù)的類型或個數(shù)不同方法名稱、參數(shù)類型、返回值類型全部相同權(quán)限對權(quán)限沒要求被重寫的方法不能擁有更嚴(yán)格的權(quán)限范圍發(fā)生在一個類中發(fā)生在繼承類中1.1.3抽象類和接口有什么區(qū)別接口是公開的,里面不能有私有的方法或變量,是用于讓別人使用的,而抽象類是可以有私有
6、方法或私有變量的,另外,實現(xiàn)接口的一定要實現(xiàn)接口里定義的所有方法,而實現(xiàn)抽象類可以有選擇地重寫需要用到的方法,一般的應(yīng)用里,最頂級的是接口,然后是抽象類實現(xiàn)接口,最后才到具體類實現(xiàn)。?還有,接口可以實現(xiàn)多重繼承,而一個類只能繼承一個超類,但可以通過繼承多個接口實現(xiàn)多重繼承,接口還有標(biāo)識(里面沒有任何方法,如Remote接口)和數(shù)據(jù)共享(里面的變量全是常量)的作用。1.1.4說說反射的用途及實現(xiàn)Java反射機制主要提供了以下功能:在運行時構(gòu)造一個類的對象;判斷一個類所具有的成員變量和方法;調(diào)用一個對象的方法;生成動態(tài)代理。反射最大的應(yīng)用就是框架Java反射的主要功能:?-確定一個對象
7、的類?-取出類的modifiers,數(shù)據(jù)成員,方法,構(gòu)造器,和超類.?-參考學(xué)習(xí)資料WORD整理版找出某個接口里定義的常量和方法說明.?-創(chuàng)建一個類實例,這個實例在運行時刻才有名字(運行時間才生成的對象).?-取得和設(shè)定對象數(shù)據(jù)成員的值,如果數(shù)據(jù)成員名是運行時刻確定的也能做到.?-在運行時刻調(diào)用動態(tài)對象的方法.?-創(chuàng)建數(shù)組,數(shù)組大小和類型在運行時刻才確定,也能更改數(shù)組成員的值.反射的應(yīng)用很多,很多框架都有用到spring的ioc/di也是反射….?javaBean和j