成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

百度Java研發(fā)面試題分析匯總

開(kāi)發(fā) 后端
在23種設(shè)計(jì)模式中,單例模式排行老大。雖然理解簡(jiǎn)單,但是對(duì)于應(yīng)用場(chǎng)景。你真正的熟悉么?使用單例,是由于沒(méi)必要每個(gè)請(qǐng)求都新建一個(gè)對(duì)象,這樣既浪費(fèi)CPU又浪費(fèi)內(nèi)存;之所以用多例,是為了防止并發(fā)問(wèn)題;即一個(gè)請(qǐng)求改變了對(duì)象的狀態(tài),此時(shí)對(duì)象又處理另一個(gè)請(qǐng)求,而之前請(qǐng)求對(duì)對(duì)象狀態(tài)的改變導(dǎo)致了對(duì)象對(duì)另一個(gè)請(qǐng)求做了錯(cuò)誤的處理。

1. 單例模式常見(jiàn)的應(yīng)用場(chǎng)景分析。  

在23種設(shè)計(jì)模式中,單例模式排行老大。雖然理解簡(jiǎn)單,但是對(duì)于應(yīng)用場(chǎng)景。你真正的熟悉么?使用單例,是由于沒(méi)必要每個(gè)請(qǐng)求都新建一個(gè)對(duì)象,這樣既浪費(fèi)CPU又浪費(fèi)內(nèi)存;之所以用多例,是為了防止并發(fā)問(wèn)題;即一個(gè)請(qǐng)求改變了對(duì)象的狀態(tài),此時(shí)對(duì)象又處理另一個(gè)請(qǐng)求,而之前請(qǐng)求對(duì)對(duì)象狀態(tài)的改變導(dǎo)致了對(duì)象對(duì)另一個(gè)請(qǐng)求做了錯(cuò)誤的處理。

百度Java研發(fā)面試題分析匯總

先來(lái)說(shuō)說(shuō)Java web中的單例應(yīng)用場(chǎng)景:數(shù)據(jù)庫(kù)連接池就是單例模式,有且僅有一個(gè)連接池管理者,管理多個(gè)連接池對(duì)象。我們常用的service和dao層的對(duì)象通常都是 單例的(由于其所有的請(qǐng)求都用一個(gè)對(duì)象來(lái)處理),而struts2中的action則是多例,由于每個(gè)請(qǐng)求是用一個(gè)新的對(duì)象來(lái)處理的(因?yàn)閍ction本 身含有請(qǐng)求參數(shù)的值,即可改變的狀態(tài))。 log4j日志記錄也是單例模式,因?yàn)閺氖贾两K都僅維護(hù)一個(gè)對(duì)象。(應(yīng)用程序的日志應(yīng)用,一般都何用單例模式實(shí)現(xiàn),這一般是由于共享的日志文件一直處于打 開(kāi)狀態(tài),因?yàn)橹荒苡幸粋€(gè)實(shí)例去操作,否則內(nèi)容不好追加)。

2. 什么是平衡二叉樹(shù)。

它或者是一顆空樹(shù),或者具有以下性質(zhì)的二叉樹(shù):它的左子樹(shù)和右子樹(shù)的深度之差的絕對(duì)值不超過(guò)1,且它的左子樹(shù)和右子樹(shù)都是一顆平衡二叉樹(shù)。

3. 什么是紅黑樹(shù)。

紅黑樹(shù)是特殊的平衡二叉樹(shù)。遵循紅定理和黑定理。紅定理:在一條路徑上不能出現(xiàn)兩個(gè)相連的紅節(jié)點(diǎn);黑定理:根節(jié)點(diǎn)必須是黑節(jié)點(diǎn),而且所有節(jié)點(diǎn)通向樹(shù)的尾端的路徑上,所含的黑節(jié)點(diǎn)的個(gè)數(shù)必須相等。

4. 什么是B樹(shù)。(二叉搜索樹(shù))

所有節(jié)點(diǎn)存儲(chǔ)一個(gè)關(guān)鍵字;非葉子結(jié)點(diǎn)的左指針指向小于其關(guān)鍵字的子樹(shù),右指針指向大于其關(guān)鍵字的子樹(shù);所有非葉子節(jié)點(diǎn)最多擁有兩個(gè)兒子。

5. 什么是B-樹(shù)。(多路搜索樹(shù))

根節(jié)點(diǎn)兒子樹(shù)[2,m];非根節(jié)點(diǎn)非葉子節(jié)點(diǎn)的兒子樹(shù)[m/2,m];每個(gè)節(jié)點(diǎn)的關(guān)鍵字?jǐn)?shù)為[m/2-1,m-1]。

6. 什么是B+樹(shù)。

B+樹(shù)是B-樹(shù)的變體;在B-樹(shù)的定義之上,補(bǔ)充定義有:所有關(guān)鍵字都在葉子節(jié)點(diǎn)出現(xiàn);所有葉子節(jié)點(diǎn)增加一個(gè)鏈指針;非葉子節(jié)點(diǎn)的子樹(shù)與關(guān)鍵字個(gè)數(shù)相同。  

總結(jié):平衡二叉樹(shù)是一種二叉搜索樹(shù)。其可以保證在log2(n)的時(shí)間內(nèi)找到節(jié)點(diǎn),而普通的二叉搜索樹(shù)在最壞情況下性能近似與鏈表,所用時(shí)間為log(n)。紅黑樹(shù)用在內(nèi)部排序,即全放在內(nèi)存中的,微軟STL的map和set的內(nèi)部實(shí)現(xiàn)就是紅黑樹(shù)。B樹(shù)多用在內(nèi)存里放不下,大部分?jǐn)?shù)據(jù)存儲(chǔ)在外存上時(shí)。因?yàn)锽樹(shù)層數(shù)少,因此可以確保每次操作,讀取磁盤的次數(shù)盡可能的少。在數(shù)據(jù)較小,可以完全放到內(nèi)存中時(shí),紅黑樹(shù)的時(shí)間復(fù)雜度比B樹(shù)低。反之,數(shù)據(jù)量較大,外存中占主要部分時(shí),B樹(shù)因其讀磁盤次數(shù)少,而具有更快的速度。    

補(bǔ)充紅黑樹(shù)的由來(lái):在查找中,雖然hash表查找非常迅速,但是隨著數(shù)據(jù)的種類增多,hash表長(zhǎng)會(huì)變得更長(zhǎng),且沖突也會(huì)越來(lái)越多,那么如何才能實(shí)現(xiàn)無(wú)論在多大數(shù)據(jù)量的情況下,查找依然是高性能的呢?同時(shí)我們又知道樹(shù)是很好的一種數(shù)據(jù)結(jié)構(gòu),那用于插入,刪除,查找等都是很高效的數(shù)據(jù)樹(shù)構(gòu),但問(wèn)題是在很壞的情況下,操作很費(fèi)時(shí)間,它的性能得到不保證,比如二叉查找樹(shù)中如果左子樹(shù)與右子樹(shù)相差太遠(yuǎn),那么查找時(shí)就很費(fèi)時(shí)間。這時(shí)為了保證其有高效性,就得保證左樹(shù)與右樹(shù)不能差得太遠(yuǎn),當(dāng)向樹(shù)中插入時(shí),就按一定規(guī)則調(diào)整,使其達(dá)到規(guī)則,從而使其整體與局部查找效率得到提高。這就是紅黑樹(shù)的規(guī)則。

7. final finally finalize三者的區(qū)別。

finalize是一個(gè)方法,而且它是 Object類中的一個(gè)方法。當(dāng)垃圾收集器在確定這個(gè)對(duì)象沒(méi)有被引用時(shí)調(diào)用對(duì)象的finalize方法。它的作用是為GC清理對(duì)象之前做一些必要的清理工 作(如輸入/輸出連接的對(duì)象的 finalize 方法可執(zhí)行顯式 I/O 事務(wù),以便在永久丟棄對(duì)象之前中斷連接)。

finally用在try,catch異常機(jī)制中,不管什么情況都會(huì)執(zhí)行。

final修飾類,表示不可被繼承;修飾基本數(shù)據(jù)類型,即常量不可變;修飾引用類型,指向的對(duì)象內(nèi)容可變,對(duì)象不可變。

8. Error Exception RuntimeException

異常機(jī)制的繼承結(jié)構(gòu)首先,基類為 Throwable;Error和Exception繼承Throwable;RuntimeException和IOException等繼承 Exception(即具體的RuntimeException繼承RuntimeException).

Error描述了內(nèi)部錯(cuò)誤以及資源耗盡的情形。應(yīng)用程序不應(yīng)該拋出這種類型的對(duì)象(一般是由虛擬機(jī)拋出)。程序級(jí)別不能處理。

Exception則包括 RuntimeException和其他非RuntimeException的。RuntimeException包括錯(cuò)誤的類型轉(zhuǎn)換、數(shù)組越界訪問(wèn)和試 圖訪問(wèn)空指針等等。處理RuntimeException的原則是:如果出現(xiàn)RuntimeException,那么一定是程序員的錯(cuò)誤。例如,可以通過(guò) 檢查數(shù)組下標(biāo)和數(shù)組邊界來(lái)避免數(shù)組越界訪問(wèn)異常。非RuntimeException(IOException等等):這類異常一般是外部錯(cuò)誤,例如試圖 從文件尾后讀取數(shù)據(jù)等,這并不是程序本身的錯(cuò)誤,而是在應(yīng)用環(huán)境中出現(xiàn)的外部錯(cuò)誤。  

總結(jié):比如5/0就是runtimeException異常,這樣的異常可以在程序里不做處理,不會(huì)報(bào)錯(cuò),運(yùn)行時(shí)才會(huì)報(bào)異常。非runtimeException異常就是在程序里就要進(jìn)行try catch的,不進(jìn)行處理就會(huì)報(bào)錯(cuò)。

9. 區(qū)別TCP UDP HTTP HTTPS SFTP FTP

TCP可靠連接,三次握手,四次揮手。

UDP不可靠連接。

HTTPS是SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議。要比HTTP協(xié)議安全。它使用SSL即是安全套接字層(SSL)進(jìn)行信息交換。HTTP需要申請(qǐng)證書(shū),是收費(fèi)的。

FTP是文件傳輸協(xié)議。在網(wǎng)站上,如果你想把文件和人共享,最便捷的方式莫過(guò)于把文件上傳到FTP服務(wù)器上,其他人通過(guò)FTP客戶端程序來(lái)下載所需要的文件。FTP進(jìn)行文件傳輸需要通過(guò)端口進(jìn)行。一般所需端口為:控制鏈路—TCP端口21。控制器端。用于發(fā)送指令給服務(wù)器以及等待服務(wù)器響應(yīng)。數(shù)據(jù)鏈路---TCP端口20。數(shù)據(jù)傳輸端口。用來(lái)建立數(shù)據(jù)傳輸通道的。主要用來(lái)從客戶向服務(wù)器發(fā)送一個(gè)文件、從服務(wù)器向客戶發(fā)送一個(gè)文件、從服務(wù)器向客戶發(fā)送文件或目錄列表。FTP為了適應(yīng)不同的網(wǎng)絡(luò)環(huán)境,支持主動(dòng)連接和被動(dòng)連接兩種模式。這兩種模式都主要針對(duì)數(shù)據(jù)鏈路進(jìn)行的,跟控制鏈路無(wú)關(guān)。SFTP是Secure File Transfer Protocol的縮寫,是安全文件傳送協(xié)議。可以為傳輸文件提供一種安全的加密方法。跟ftp幾乎語(yǔ)法功能一樣。SFTP是SSH的一部分,是一種傳輸檔案至Blogger伺服器的安全方式。它本身沒(méi)有單獨(dú)的守護(hù)進(jìn)程,必須使用sshd守護(hù)進(jìn)程來(lái)完成相應(yīng)的連接操作,所以從某種意義上來(lái)說(shuō),SFTP并不像一個(gè)服務(wù)器程序,而更像是一個(gè)客戶端程序。SFTP同樣是使用加密傳輸認(rèn)證信息和傳輸?shù)臄?shù)據(jù),所以使用SFTP是十分安全的。但由于這種傳輸方式使用了加密/解密技術(shù),所以傳輸效率比普通的FTP要低得多。在對(duì)網(wǎng)絡(luò)安全性要求更時(shí),代替FTP使用。  

10. Java的參數(shù)傳遞中,值傳遞和引用傳遞區(qū)別。

值傳遞的時(shí)候,傳遞的參數(shù)是值的拷貝傳遞,傳遞動(dòng)作完成以后就毫無(wú)瓜葛了。引用傳遞,傳遞的參數(shù)是引用的地址。也就是變量所對(duì)應(yīng)的內(nèi)存空間的地址。這兩者的區(qū)分類比當(dāng)初C語(yǔ)言中的,用函數(shù)方法交換兩個(gè)數(shù)的值。

 

  1. int i = 0
  2. i = i++; 
  3.  
  4. //輸出 i的值是0; 順序應(yīng)該是:先計(jì)算表達(dá)式的值,得0,然后i加1,此時(shí)i=1,最后賦值,賦值是把表達(dá)式的值賦值,所以,i又變成0了. 

 

11. 服務(wù)器網(wǎng)絡(luò)編程中,解決回話跟蹤有哪幾種方法?

Cookie; Session; URL重寫;

cookie在J2EE項(xiàng)目中的使用,Java中把Cookie封裝成了java.servlet.http.Cookie類。每個(gè)Cookie都是該 Cookie類的對(duì)象。服務(wù)器通過(guò)操作Cookie類對(duì)象,對(duì)客戶端Cookie進(jìn)行操作。通過(guò)request.getCookies()獲取客戶端提交 的所有Cookie(以Cookie[]數(shù)組形式返回),通過(guò) response.addCookie(Cookiecookie)向客戶端設(shè)置Cookie。Cookie對(duì)象使用key-value屬性對(duì)的形式保存 用戶狀態(tài),一個(gè)Cookie對(duì)象保存一個(gè)屬性對(duì),一個(gè)request或者response同時(shí)使用多個(gè)Cookie。。

 

  1. // 服務(wù)器端獲取cookie 
  2. Cookie[]cookies = request.getCookies(); 
  3. for (int i = 0; cookies != null && i < cookies.length;i++) { 
  4.          Cookiecookie = cookies[i]; 
  5.          if("username".equals(cookie.getName())) { 
  6.          } 
  7.       } 
  8.  
  9. //服務(wù)器端設(shè)置cookie 
  10.  
  11.  String username = "sa"
  12.  Cookie usernameCookie = new Cookie("username", username); 
  13.  response.addCookie(usernameCookie); 

 

cookie的不可跨域名性和cookie的有效期。

 
 
責(zé)任編輯:王雪燕 來(lái)源: 博客園
相關(guān)推薦

2018-03-08 18:40:47

Java百度面試題

2010-08-12 15:33:00

百度筆試

2024-06-19 08:02:33

2014-03-07 13:23:23

百度面試iOS

2011-03-31 20:35:02

2010-04-22 16:31:20

Oracle開(kāi)發(fā)面試題

2015-07-23 14:13:43

前端開(kāi)發(fā)面試題

2009-06-16 14:03:16

Hibernate面試Hibernate面試

2017-08-29 14:12:16

Java面試題

2018-05-30 10:47:15

Python 百度編程語(yǔ)言

2018-02-01 16:00:42

百度Python面試題

2023-09-29 11:50:10

接口編程代碼

2012-11-25 15:42:47

互聯(lián)網(wǎng)百度搜索

2009-06-02 15:11:11

Hibernate面試題查詢

2012-05-08 16:11:14

WEB前端開(kāi)發(fā)面試

2018-05-01 08:24:40

Python面試題開(kāi)發(fā)

2013-08-22 17:08:50

2014-07-25 17:12:39

數(shù)據(jù)庫(kù)WOT2014MongoDB

2015-09-24 11:02:07

服務(wù)器

2013-01-31 09:15:08

偷拍插件美杜莎
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 五月激情综合网 | 欧美极品在线播放 | 欧美视频在线播放 | 亚洲国产欧美精品 | 亚洲www啪成人一区二区麻豆 | 日韩在线成人 | 国产精品极品美女在线观看免费 | www.久久.com | 欧美手机在线 | 激情六月丁香婷婷 | 激情一区二区三区 | 久久久久久九九九九九九 | 黄片毛片免费看 | 在线观看免费黄色片 | 亚洲天堂一区 | 国产精品免费一区二区三区 | 亚洲欧洲一区二区 | 亚洲日韩中文字幕一区 | 992tv人人草 久久精品超碰 | 欧美精品一区二区三区在线 | 欧美13videosex性极品 | 99精品久久久久久中文字幕 | 亚洲欧美国产精品久久 | 日美女逼逼 | 四虎影音| 亚洲午夜精品视频 | 日韩精品1区2区3区 国产精品国产成人国产三级 | 精品国模一区二区三区欧美 | 亚洲精品视频在线看 | 亚洲精品国产成人 | 日韩一区二区三区在线观看 | 欧美高清一区 | 一区二区三区免费 | 99国产精品久久久久老师 | 国产成人高清成人av片在线看 | 国产精品夜夜夜一区二区三区尤 | 中文字字幕一区二区三区四区五区 | 中文久久 | 免费一区| 亚洲va欧美va天堂v国产综合 | 国产一区二区三区在线免费观看 |