大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) 百度java面試題參考

百度java面試題參考

更新時(shí)間:2020-06-09 12:07:01 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2358次

相信有不少小伙伴都想通過(guò)學(xué)習(xí)java進(jìn)入到知名企業(yè),百度公司就是很多朋友所向往的,當(dāng)然要去百度也需要參加面試才可以,動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編就為大家準(zhǔn)備了百度java面試題參考,希望對(duì)大家能夠有所幫助。

百度java面試題

1.LinkedHashMap 的應(yīng)用

基于 LinkedHashMap 的訪問(wèn)順序的特點(diǎn),可構(gòu)造一個(gè) LRU(Least Recently Used) 最近最少使用簡(jiǎn)單緩存。 也有一些開(kāi)源的緩存產(chǎn)品如 ehcache 的淘汰策略( LRU )就是在 LinkedHashMap 上擴(kuò)展的。

2.Cloneable 接口實(shí)現(xiàn)原理

Cloneable接口是Java開(kāi)發(fā)中常用的一個(gè)接口, 它的作用是使一個(gè)類的實(shí)例能夠?qū)⒆陨砜截惖搅硪粋€(gè)新的實(shí)例中, 注意,這里所說(shuō)的“拷貝”拷的是對(duì)象實(shí)例,而不是類的定義,進(jìn)一步說(shuō),拷貝的是一個(gè)類的實(shí)例中各字段的值。

在開(kāi)發(fā)過(guò)程中,拷貝實(shí)例是常見(jiàn)的一種操作,如果一個(gè)類中的字段較多,而我們又采用在客戶端中逐字段復(fù)制的方 法進(jìn)行拷貝操作的話,將不可避免的造成客戶端代碼繁雜冗長(zhǎng),而且也無(wú)法對(duì)類中的私有成員進(jìn)行復(fù)制,而如果讓需要 具備拷貝功能的類實(shí)現(xiàn)Cloneable接口,并重寫clone()方法,就可以通過(guò)調(diào)用clone()方法的方式簡(jiǎn)潔地實(shí)現(xiàn)實(shí)例 拷貝功能。

深拷貝(深復(fù)制)和淺拷貝(淺復(fù)制)是兩個(gè)比較通用的概念,尤其在C++語(yǔ)言中,若不弄懂,則會(huì)在delete的時(shí)候出問(wèn)題,但是我們?cè)谶@幸好用的是Java。雖然Java自動(dòng)管理對(duì)象的回收,但對(duì)于深拷貝(深復(fù)制)和淺拷貝(淺復(fù)制),我們 還是要給予足夠的重視,因?yàn)橛袝r(shí)這兩個(gè)概念往往會(huì)給我們帶來(lái)不小的困惑。

淺拷貝是指拷貝對(duì)象時(shí)僅僅拷貝對(duì)象本身(包括對(duì)象中的基本變量),而不拷貝對(duì)象包含的引用指向的對(duì)象。深拷 貝不僅拷貝對(duì)象本身,而且拷貝對(duì)象包含的引用指向的所有對(duì)象。舉例來(lái)說(shuō)更加清楚:對(duì)象 A1 中包含對(duì) B1 的引用, B1 中包含對(duì) C1 的引用。淺拷貝 A1 得到 A2 , A2 中依然包含對(duì) B1 的引用, B1 中依然包含對(duì) C1 的引 用。深拷貝則是對(duì)淺拷貝的遞歸,深拷貝 A1 得到 A2 , A2 中包含對(duì) B2 ( B1 的 copy )的引用, B2 中包含 對(duì) C2 ( C1 的 copy )的引用。

若不對(duì)clone()方法進(jìn)行改寫,則調(diào)用此方法得到的對(duì)象即為淺拷貝

3.異常分類以及處理機(jī)制

1.png

Java標(biāo)準(zhǔn)庫(kù)內(nèi)建了一些通用的異常,這些類以Throwable為頂層父類。

Throwable又派生出Error類和Exception類。

錯(cuò)誤:Error類以及他的子類的實(shí)例,代表了JVM本身的錯(cuò)誤。錯(cuò)誤不能被程序員通過(guò)代碼處理,Error很少出現(xiàn)。

因此,程序員應(yīng)該關(guān)注Exception為父類的分支下的各種異常類。

異常:Exception以及他的子類,代表程序運(yùn)行時(shí)發(fā)送的各種不期望發(fā)生的事件。可以被Java異常處理機(jī)制使用, 是異常處理的核心。

2.png

總體上我們根據(jù) Javac 對(duì)異常的處理要求,將異常類分為二類。

非檢查異常( unckecked exception ): Error 和 RuntimeException 以及他們的子類。 javac 在編譯時(shí), 不會(huì)提示和發(fā)現(xiàn)這樣的異常,不要求在程序處理這些異常。所以如果愿意,我們可以編寫代碼處理(使用 try… catch…finally )這樣的異常,也可以不處理。對(duì)于這些異常,我們應(yīng)該修正代碼,而不是去通過(guò)異常處理器處理 。這樣的異常發(fā)生的原因多半是代碼寫的有問(wèn)題。如除0錯(cuò)誤 ArithmeticException ,錯(cuò)誤的強(qiáng)制類型轉(zhuǎn)換錯(cuò) 誤 ClassCastException ,數(shù)組索引越界 ArrayIndexOutOfBoundsException ,使用了空對(duì)象 NullPointerException 等等。

檢查異常( checked exception ):除了 Error 和 RuntimeException 的其它異常。 javac 強(qiáng)制要求程序員 為這樣的異常做預(yù)備處理工作(使用 try…catch…finally 或者 throws )。在方法中要么用 try-catch 語(yǔ)句捕 獲它并處理,要么用throws子句聲明拋出它,否則編譯不會(huì)通過(guò)。這樣的異常一般是由程序的運(yùn)行環(huán)境導(dǎo)致的。因 為程序可能被運(yùn)行在各種未知的環(huán)境下,而程序員無(wú)法干預(yù)用戶如何使用他編寫的程序,于是程序員就應(yīng)該為這樣 的異常時(shí)刻準(zhǔn)備著。如 SQLException , IOException , ClassNotFoundException 等。

需要明確的是:檢查和非檢查是對(duì)于 javac 來(lái)說(shuō)的,這樣就很好理解和區(qū)分了。

4.wait 和 sleep 的區(qū)別

源碼如下:

3.png

4.png

5.png

(1) sleep 來(lái)自 Thread 類,和 wait 來(lái)自 Object 類。 

(2)最主要是sleep方法沒(méi)有釋放鎖,而wait方法釋放了 鎖,使得其他線程可以使用同步控制塊或者方法。 

(3)wait,notify和 notifyAll 只能在同步控制方法或者同步控制塊里面使用,而 sleep 可以在任何地方使用(使 用范圍)

(4)sleep 必須捕獲異常,而 wait , notify 和 notifyAll 不需要捕獲異常

• sleep 方法屬于 Thread 類中方法,表示讓一個(gè)線程進(jìn)入睡眠狀態(tài),等待一定的時(shí)間之后,自動(dòng)醒來(lái)進(jìn)入到可 運(yùn)行狀態(tài),不會(huì)馬上進(jìn)入運(yùn)行狀態(tài),因?yàn)榫€程調(diào)度機(jī)制恢復(fù)線程的運(yùn)行也需要時(shí)間,一個(gè)線程對(duì)象調(diào)用了 sleep 方法之后,并不會(huì)釋放他所持有的所有對(duì)象鎖,所以也就不會(huì)影響其他進(jìn)程對(duì)象的運(yùn)行。但在 sleep 的過(guò)程中過(guò) 程中有可能被其他對(duì)象調(diào)用它的 interrupt() ,產(chǎn)生 InterruptedException 異常,如果你的程序不捕獲這個(gè)異 常,線程就會(huì)異常終止,進(jìn)入 TERMINATED 狀態(tài),如果你的程序捕獲了這個(gè)異常,那么程序就會(huì)繼續(xù)執(zhí)行catch語(yǔ) 句塊(可能還有 finally 語(yǔ)句塊)以及以后的代碼。

注意 sleep() 方法是一個(gè)靜態(tài)方法,也就是說(shuō)他只對(duì)當(dāng)前對(duì)象有效,通過(guò) t.sleep() 讓t對(duì)象進(jìn)入 sleep ,這樣 的做法是錯(cuò)誤的,它只會(huì)是使當(dāng)前線程被 sleep 而不是 t 線程

• wait 屬于 Object 的成員方法,一旦一個(gè)對(duì)象調(diào)用了wait方法,必須要采用 notify() 和 notifyAll() 方法 喚醒該進(jìn)程;如果線程擁有某個(gè)或某些對(duì)象的同步鎖,那么在調(diào)用了 wait() 后,這個(gè)線程就會(huì)釋放它持有的所有 同步資源,而不限于這個(gè)被調(diào)用了 wait() 方法的對(duì)象。 wait() 方法也同樣會(huì)在 wait 的過(guò)程中有可能被其他對(duì) 象調(diào)用 interrupt() 方法而產(chǎn)生 。
5.數(shù)組在內(nèi)存中如何分配

對(duì)于 Java 數(shù)組的初始化,有以下兩種方式,這也是面試中經(jīng)常考到的經(jīng)典題目:

靜態(tài)初始化:初始化時(shí)由程序員顯式指定每個(gè)數(shù)組元素的初始值,由系統(tǒng)決定數(shù)組長(zhǎng)度,如:

6.png

動(dòng)態(tài)初始化:初始化時(shí)由程序員顯示的指定數(shù)組的長(zhǎng)度,由系統(tǒng)為數(shù)據(jù)每個(gè)元素分配初始值,如:

7.png

因?yàn)?Java 數(shù)組變量是引用類型的變量,所以上述幾行初始化語(yǔ)句執(zhí)行后,三個(gè)數(shù)組在內(nèi)存中的分配情況如下圖所示:

8.png

由上圖可知,靜態(tài)初始化方式,程序員雖然沒(méi)有指定數(shù)組長(zhǎng)度,但是系統(tǒng)已經(jīng)自動(dòng)幫我們給分配了,而動(dòng)態(tài)初始化 方式,程序員雖然沒(méi)有顯示的指定初始化值,但是因?yàn)?Java 數(shù)組是引用類型的變量,所以系統(tǒng)也為每個(gè)元素分配 了初始化值 null ,當(dāng)然不同類型的初始化值也是不一樣的,假設(shè)是基本類型int類型,那么為系統(tǒng)分配的初始化值 也是對(duì)應(yīng)的默認(rèn)值0。

百度java面試題參考

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

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

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 99热成人精品免费久久 | 爱爱网站免费 | 美女啪啪免费网站 | 99视频在线观看免费 | 亚洲一级黄色大片 | 午夜精品久久久久久久 | 国内精品久久久久影院日本 | 中文字幕在线最新在线不卡 | 四虎午夜剧场 | 日韩中文字幕免费 | 欧洲a老妇女黄大片 | 欧美在线一区二区三区 | 国产成人精品曰本亚洲77美色 | 在线观看中文字幕国产 | 草久视频在线 | 精品一区二区三区中文 | 国产精选自拍 | 日韩高清一区二区 | 久久精品夜夜夜夜夜久久 | 玖玖影院在线观看 | 亚洲国产精品久久久久666 | 日本高清视频一区二区 | 国产精品一区伦免视频播放 | 爱爱免费网址 | 91网红福利精品区一区二 | 久久视频免费在线观看 | 亚洲国产一区二区a毛片 | 久久精品色 | 亚洲一级毛片免费观看 | 色片免费| 国产伦精品一区二区三区四区 | 亚洲高清美女一区二区三区 | 色综合久久久久久久久久久 | 我想看一级黄色毛片 | 伊人日本 | 久久久亚洲天堂 | 国产免费爱在线观看视频 | 久久国产精品二国产精品 | 愉拍精品视频在线观看 | 成人久久伊人精品伊人 | 午夜在线播放 |