最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

干貨來了!| 125 條常見的 java 面試筆試題大匯總 |(20/125)| 日更中!

2021-08-26 16:55 作者:今天IT了嗎  | 我要投稿

1.抽象:

抽象就是忽略一個主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有 關(guān)的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細(xì)節(jié)。抽 象包括兩個方面,一是過程抽象,二是數(shù)據(jù)抽象。?

2.繼承:?

繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性 的方法。對象的一個新類可以從現(xiàn)有的類中派生,這個過程稱為類繼承。新類繼承了原始類 的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以 從它的基類那里繼承方法和實(shí)例變量,并且類可以修改或增加新的方法使之更適合特殊的需 要。

3.封裝:?

封裝是把過程和數(shù)據(jù)包圍起來,對數(shù)據(jù)的訪問只能通過已定義的界面。面向?qū)ο笥嬎闶?于這個基本概念,即現(xiàn)實(shí)世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一 個受保護(hù)的接口訪問其他對象。

4. 多態(tài)性:

多態(tài)性是指允許不同類的對象對同一消息作出響應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和包含多 態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,很好的解決了應(yīng)用程序函 數(shù)同名問題。?

5、String 是最基本的數(shù)據(jù)類型嗎??

基本數(shù)據(jù)類型包括 byte、int、char、long、float、double、boolean 和 short。 java.lang.String 類是 final 類型的,因此不可以繼承這個類、不能修改這個類。為了提高 效率節(jié)省空間,我們應(yīng)該用 StringBuf fer 類

6、int 和 Integer 有什么區(qū)別

Java 提供兩種不同的類型:引用類型和原始類型(或內(nèi)置類型)。Int 是 java 的原始數(shù) 據(jù)類型,Integer 是 java 為 int 提供的封裝類。Java 為每個原始類型提供了封裝類。原始類型 封裝類 boolean Boole an char Character byte Byte short Short int Integer long Long float Float double Double 引用類型和原始類型的行為完全不同,并且它們具有不同的語義。引用類型和原始類型 具有不同的特征和用法,它們包括:大小和速度問題,這種類型以哪種類型的數(shù)據(jù)結(jié)構(gòu)存儲 , 當(dāng)引用類型和原始類型用作某個類的實(shí)例數(shù)據(jù)時所指定的缺省值。對象引用實(shí)例變量的缺省 值為 null,而原始類型實(shí)例變量的缺省值與它們的類型有關(guān)。

7、String 和 StringBuffer的區(qū)別?

JAVA 平臺提供了兩個類:String 和 StringBuf fer,它們可以儲存和操作字符串,即包含 多個字符的字符數(shù)據(jù)。這個 String 類提供了數(shù)值不可改變的字符串。而這個 StringBuf fer 類 提供的字符串進(jìn)行修改。當(dāng)你知道字符數(shù)據(jù)要改變的時候你就可以使用 StringBuf fer。典型 地,你可以使用 StringBuf fers 來動態(tài)構(gòu)造字符數(shù)據(jù)。?

8、運(yùn)行時異常與一般異常有何異同??

異常表示程序運(yùn)行過程中可能出現(xiàn)的非正常狀態(tài),運(yùn)行時異常表示虛擬機(jī)的通常操作中 可能遇到的異常,是一種常見運(yùn)行錯誤。java 編譯器要求方法必須聲明拋出可能發(fā)生的非運(yùn) 行時異常,但是并不要求必須聲明拋出未被捕獲的運(yùn)行時異常。

9、說出 Servlet 的生命周期,并說出Servlet 和 CGI 的區(qū)別。?

Servlet 被服務(wù)器實(shí)例化后,容器運(yùn)行其 init 方法,請求到達(dá)時運(yùn)行其 service 方法,service 方法自動派遣運(yùn)行與請求對應(yīng)的 doXXX 方法(doGet,doPost)等,當(dāng)服務(wù)器決定將實(shí)例銷 毀的時候調(diào)用其 destroy 方法。與 cgi 的區(qū)別在于 servlet 處于服務(wù)器進(jìn)程中,它通過多線程方式運(yùn)行其 service 方法,一個實(shí)例可以服務(wù)于多個請求,并且其實(shí)例一般不會銷毀,而CGI 對每個請求都產(chǎn)生新的進(jìn)程,服務(wù)完成后就銷毀,所以效率上低于 servlet。

10、說出 ArrayList,Vector, LinkedList 的存儲性能和特性

ArrayList 和 Vector 都是使用數(shù)組方式存儲數(shù)據(jù),此數(shù)組元素數(shù)大于實(shí)際存儲的數(shù)據(jù)以 便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數(shù)組元素移動等 內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector 由于使用了 synchronized 方法(線程安全 ), 通常性能上較 ArrayList 差,而 LinkedList 使用雙向鏈表實(shí)現(xiàn)存儲,按序號索引數(shù)據(jù)需要進(jìn) 行前向或后向遍歷,但是插入數(shù)據(jù)時只需要記錄本項(xiàng)的前后項(xiàng)即可,所以插入速度較快。

11、EJB 是基于哪些技術(shù)實(shí)現(xiàn)的?并說出SessionBean和 EntityBean 的區(qū)別,StatefulBean和 StatelessBean的區(qū)別。

EJB 包括 Session Bean、Entity Bean、Message Driven Bean,基于 JNDI、RMI、JAT 等 技術(shù)實(shí)現(xiàn)。SessionBean 在 J2EE 應(yīng)用程序中被用來完成一些服務(wù)器端的業(yè)務(wù)操作,例如訪問 數(shù)據(jù)庫、調(diào)用其他 EJB 組件。EntityBean 被用來代表應(yīng)用系統(tǒng)中用到的數(shù)據(jù)。對于客戶機(jī), SessionBean 是一種非持久性對象,它實(shí)現(xiàn)某些在服務(wù)器上運(yùn)行的業(yè)務(wù)邏輯。對于客戶機(jī), EntityBean 是一種持久性對象,它代表一個存儲在持久性存儲器中的實(shí)體的對象視圖,或是 一個由現(xiàn)有企業(yè)應(yīng)用程序?qū)崿F(xiàn)的實(shí)體。Session Bean 還可以再細(xì)分為 Stateful Session Bean 與 Stateless Session Bean ,這兩種的 Session Bean都可以將系統(tǒng)邏輯放在 method 之中執(zhí)行 , 不同的是 Stateful Session Bean 可以記錄呼叫者的狀態(tài),因此通常來說,一個使用者會有一 個相對應(yīng)的 Stateful Session Bean 的實(shí)體。Stateless Session Bean 雖然也是邏輯組件,但是 他卻不負(fù)責(zé)記錄使用者狀態(tài),也就是說當(dāng)使用者呼叫 Stateless Session Bean 的時候,EJB Container 并不會找尋特定的 Stateless Session Bean 的實(shí)體來執(zhí)行這個 method。換言之,很 可能數(shù)個使用者在執(zhí)行某個 Stateless Session Bean 的 methods 時,會是同一個 Bean 的 Instance 在執(zhí)行。從內(nèi)存方面來看, Stateful Session Bean 與 Stateless Session Bean 比較, Stateful Session Bean 會消耗 J2EE Server 較多的內(nèi)存,然而 Stateful Session Bean 的優(yōu)勢卻 在于他可以維持使用者的狀態(tài)。

12、Collection 和 Collections的區(qū)別。

Collection 是集合類的上級接口,繼承與他的接口主要有 Set 和 List.Collections 是針對 集合類的一個幫助類,他提供一系列靜態(tài)方法實(shí)現(xiàn)對各種集合的搜索、排序、線程安全化等 操作。

13、&和&&的區(qū)別。

&是位運(yùn)算符,表示按位與運(yùn)算,&&是邏輯運(yùn)算符,表示邏輯與(and)。?

14、HashMap 和 Hashtable 的區(qū)別。

HashMap 是 Hashtable 的輕量級實(shí)現(xiàn)(非線程安全的實(shí)現(xiàn)),他們都完成了 Map 接口, 主要區(qū)別在于HashMap允許空(null)鍵 值( key),由于非線程安全,效率上可能高于Hashtable。 HashMap 允許將 null 作為一個 entry 的 key 或者 value,而 Hashtable 不允許。HashMap 把 Hashtable 的 contains 方法去掉了,改成 containsvalue 和 containsKey。因?yàn)?contains 方法容 易讓人引起誤解。 Hashtable 繼承自 Dictionary類,而 HashMap 是 Java1.2引進(jìn)的 Map interface 的一個實(shí)現(xiàn) 。 最大的不同是,Hashtable 的方法是 Synchronize 的,而 HashMap 不是,在多個線程訪問 Hashtable 時,不需要自己為它的方法實(shí)現(xiàn)同步,而 HashMap 就必須為之提供外同步。 Hashtable 和 HashMap 采用的 hash/rehash 算法都大概一樣,所以性能不會有很大的差異。

15、final, finally, finalize 的區(qū)別。

final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。 finally 是異常處理語句結(jié)構(gòu)的一部分,表示總是執(zhí)行。 finalize 是 Object 類的一個方法,在垃圾收集器執(zhí)行的時候會調(diào)用被回收對象的此方法, 可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關(guān)閉文件等。

16、sleep() 和 wait() 有什么區(qū)別??

sleep 是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時間,給執(zhí)行機(jī)會給其他 線程,但是監(jiān)控狀態(tài)依然保持,到時后會自動恢復(fù)。調(diào)用 sleep 不會釋放對象鎖。 wait 是 Object 類的方法,對此對象調(diào)用 wait 方法導(dǎo)致本線程放棄對象鎖,進(jìn)入等待此 對象的等待鎖定池,只有針對此對象發(fā)出 notify 方法(或 notifyAll)后本線程才進(jìn)入對象鎖 定池準(zhǔn)備獲得對象鎖進(jìn)入運(yùn)行狀態(tài)。

17、Overload和 Override 的區(qū)別。

Overloaded的方法是否可以改變 返回值的類型? 方法的重寫 Overriding 和重載 Overloading 是 Java 多態(tài)性的不同表現(xiàn)。重寫 Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載 Overloading 是一個類中多態(tài)性的一種表現(xiàn)。如 果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫(Overriding)。子 類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被"屏蔽" 了。如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型 , 則稱為方法的重載(Overloading)。Overloaded 的方法是可以改變返回值的類型。

18、error和 exception有什么區(qū)別??

error 表示恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問題。比如說內(nèi)存溢出。不可 能指望程序能處理這樣的情況。 exception 表示一種設(shè)計或?qū)崿F(xiàn)問題。也就是說,它表示如果程序運(yùn)行正常,從不會發(fā) 生的情況。

19、同步和異步有何異同,在什么情況下分別使用他們?舉例說明。

如果數(shù)據(jù)將在線程間共享。例如正在寫的數(shù)據(jù)以后可能被另一個線程讀到,或者正在讀 的數(shù)據(jù)可能已經(jīng)被另一個線程寫過了,那么這些數(shù)據(jù)就是共享數(shù)據(jù),必須進(jìn)行同步存取。當(dāng) 應(yīng)用程序在對象上調(diào)用了一個需要花費(fèi)很長時間來執(zhí)行的方法,并且不希望讓程序等待方法 的返回時,就應(yīng)該使用異步編程,在很多情況下采用異步途徑往往更有效率。

20、abstract class和 interface有什么區(qū)別??

聲明方法的存在而不去實(shí)現(xiàn)它的類被叫做抽象類(abstract class),它用于要創(chuàng)建一個體 現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該類中實(shí)現(xiàn)該類的情況。不能創(chuàng)建 abstract類的實(shí)例。然而可以創(chuàng)建一個變量,其類型是一個抽象類,并讓它指向具體子類的 一個實(shí)例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。Abstract類的子類為它們父類中的所有抽 象方法提供實(shí)現(xiàn),否則它們也是抽象類為。取而代之,在子類中實(shí)現(xiàn)該方法。知道其行為的 其它類可以在類中實(shí)現(xiàn)這些方法。接口(interface)是抽象類的變體。在接口中,所有方法 都是抽象的。多繼承性可通過實(shí)現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,沒有 一個有程序體。接口只可以定義 staticfinal 成員變量。接口的實(shí)現(xiàn)與子類相似,除了該實(shí)現(xiàn) 類不能從接口定義中繼承行為。當(dāng)類實(shí)現(xiàn)特殊接口時,它定義(即將程序體給予)所有這種 接口的方法。然后,它可以在實(shí)現(xiàn)了該接口的類的任何對象上調(diào)用接口的方法。由于有抽象 類,它允許使用接口名作為引用變量的類型。通常的動態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口 類型或從接口類型轉(zhuǎn)換,instanceof 運(yùn)算符可以用來決定某對象的類是否實(shí)現(xiàn)了接口。

干貨來了!| 125 條常見的 java 面試筆試題大匯總 |(20/125)| 日更中!的評論 (共 條)

分享到微博請遵守國家法律
青岛市| 德清县| 漠河县| 肥东县| 定州市| 宿迁市| 措勤县| 威宁| 乌拉特后旗| 仁化县| 江油市| 克东县| 定兴县| 龙胜| 屯留县| 翁源县| 凭祥市| 永宁县| 竹溪县| 泰和县| 巫山县| 思茅市| 昆明市| 韶关市| 若尔盖县| 壤塘县| 綦江县| 广汉市| 嘉鱼县| 湖口县| 勃利县| 屯门区| 义乌市| 南京市| 石嘴山市| 南康市| 鄂托克旗| 昌吉市| 牙克石市| 永寿县| 池州市|