百度java面試題
面試題能測出應(yīng)聘者的能力水平。下面是學(xué)習(xí)啦小編為大家?guī)淼陌俣萰ava面試題,相信對你會有幫助的。
百度java面試題(一)
第一面
1、說說項目
由于我?guī)啄暌恢弊鲆粋€產(chǎn)品,從后臺做到前臺,從業(yè)務(wù)開發(fā)做到技術(shù)平臺,所以就畫了整個產(chǎn)品部署架構(gòu)圖,b/s & c/s的,然后一層層的講解。
B/S現(xiàn)有Web框架改造、瀏覽器緩存、c/s補丁下載各種方式、cdn、c/s通信協(xié)議、rpc集群、http集群、負載均衡、集群前置機調(diào)度、后端服務(wù)器主從實例、后端服務(wù)器各種優(yōu)化(異步、性能隔離)、數(shù)據(jù)庫服務(wù)器各種優(yōu)化(索引、物化視圖、讀寫分離、帳套結(jié)轉(zhuǎn)、數(shù)據(jù)庫橫向切分、縱向切分)、層間調(diào)用性能監(jiān)控的實現(xiàn),對照產(chǎn)品架構(gòu)圖各個部分一路講下來。
2、http集群方案,我們的是反向代理服務(wù)器,自己有寫代理服務(wù)器,也可以用主流的web服務(wù)器,然后面試官就問ngnix、lighttpd、apache三大主流web服務(wù)器的區(qū)別...囧了。。。
3、如果有機會重新設(shè)計你們的產(chǎn)品,你會怎么做?
這個當(dāng)時回答的不好,主要從通信協(xié)議和數(shù)據(jù)存儲兩塊來說了,這樣說有些片面。因為我們產(chǎn)品本身又很多問題,只通過部署架構(gòu)圖是反映不出來的,如二次開發(fā)問題、補丁下載問題、不同模塊java包相互依賴問題、技術(shù)框架比較封閉、構(gòu)建系統(tǒng)方案落后、文檔缺失等,我們內(nèi)部經(jīng)歷過很多的痛苦的,但是當(dāng)時思維局限在了部署架構(gòu),所以沒有說出這些問題。
第二面
4、網(wǎng)站性能優(yōu)化如何優(yōu)化的?
自己一點網(wǎng)站性能優(yōu)化經(jīng)歷,結(jié)合《構(gòu)建高性能Web站點》,扯了一通,跟一面有點類似。
5、本來要花產(chǎn)品架構(gòu)圖,我翻過簡歷,后邊有一面時候畫的,就沒要畫了。然后就要我在黑板(暫且叫做黑板)上畫jvm體系結(jié)構(gòu)。
畫了jvm體系結(jié)構(gòu),講解了jvm各個組件和組件的交互、GC算法、各種垃圾收集器、運行期優(yōu)化、產(chǎn)品中遇到的與jvm相關(guān)的問題如oom、ClassLoader問題等,并針對HotSpot VM的實現(xiàn)講解了堆、非堆內(nèi)存劃分
第三面(HR面)
6、看我面過b2b和支付寶,問了下情況
b2b面完了,但是沒過;支付寶過了2面
7、個人優(yōu)缺點
8、是否愿意來杭州
第四面(視頻電話面,杭州某大牛)
9、介紹項目。對于Web框架的改造,跟原有框架的異同
10、下班后的時間有學(xué)習(xí)技術(shù)么
11、是否參加過開源項目
百度java面試題(二)
第一面
項目:
1、找一個項目,介紹下情況。其中遇到了什么問題,每種問題怎么樣的解決方案。
算法題:
2、一個排好序的數(shù)組,找出兩數(shù)之和為m的所有組合
3、自然數(shù)序列,找出任意連續(xù)之和等于n的所有子序列
數(shù)據(jù)結(jié)構(gòu):
4、從數(shù)據(jù)庫查出一個數(shù)據(jù)結(jié)果集,其中有一個時間字段,請用一個數(shù)據(jù)結(jié)構(gòu)存儲使得可以最快速的查出某個時間段內(nèi)的記錄。
5、上一題我提到了B+樹,他就繼續(xù)問了為何用B+樹實現(xiàn)索引而不用二叉樹
數(shù)據(jù)庫:
6、說說Oracle數(shù)據(jù)庫的事務(wù)隔離級別,以及遇到的相關(guān)問題
這個我說了標準的四種級別,Oracle實現(xiàn)的三種級別,并概述了下多版本讀一致性
項目相關(guān)技術(shù):
7、看到簡歷上寫了個rpc,講講,我說了跟rmi比較像,說了異同點,然后又展開到內(nèi)存分配的問題,不過沒搞懂他到底要說什么。還問題java客戶端跟c程序服務(wù)端的通信情況,比如說c那邊直接一個結(jié)構(gòu)體過來,怎么處理,答曰沒遇到過。
8、簡歷上寫的jvm性能調(diào)優(yōu),說說都做了什么事情
9、說到j(luò)vm的時候,說到了我們用windows開發(fā),就問linux的腳本知道么,awk用過么
10、簡歷上寫web框架開發(fā)維護,就問瀏覽器端跟服務(wù)器端如何通信,不過最后只落到了java對象如何傳遞到客戶端,客戶端數(shù)據(jù)如何傳遞到服務(wù)端。
java基礎(chǔ):
11、并發(fā)同步的問題,synchorized是如何使用,Object的wait、notify方法什么作用
框架:
12、是否了解spring,ioc的實現(xiàn),aop的實現(xiàn)方案,各種方案有什么限制
第二面
項目:
1、介紹下你做的項目,稍微高層次一些的介紹下,意思是不要沒完沒了的介紹
其中提到了主實例集群節(jié)點與主實例備用節(jié)點的單例狀態(tài)如何保持同步
2、rpc通信和rmi區(qū)別
3、并發(fā)訪問同一條數(shù)據(jù)的時候,如何保證數(shù)據(jù)同步。
4、網(wǎng)站性能優(yōu)化都做了什么,具體的?ETag、Last-Modified、Expires、Cache-Control
5、最近看什么書,印象最深刻的是什么?
算法:
6、二叉樹,找兩個節(jié)點的最底層的公共父節(jié)點,給思路
7、單向鏈表反轉(zhuǎn),寫代碼
第三面
自我介紹:
1、個人基本情況,順便提到項目,就開始扯了幾下
數(shù)據(jù)庫:
2、數(shù)據(jù)庫性能優(yōu)化有做么?做了些什么?
設(shè)計:
3、設(shè)計一個小商店進銷存系統(tǒng)的的表結(jié)構(gòu)設(shè)計,老板每天要知道賣出的貨物,要定期查看貨物的成本、銷售額和利潤。
這里要注意,重點之一是如何進行成本計算,要知道成本計算的幾種方法,選其中一種實現(xiàn),這個會影響表結(jié)構(gòu)的設(shè)計
算法:
4、1到1億的自然數(shù),求所有數(shù)的拆分后的數(shù)字之和,如286 拆分成2、8、6,如1到11拆分后的數(shù)字之和 => 1 + ... + 9 + 1 + 0 + 1 + 1。
之前去百度面試,整理了一下面試問題。沒有筆試,直接和面試官交談。感覺面試官人挺好的,挺有耐心,每次面試回來不論公司大小,不管能不能拿到offer,但基本都能有一些有價值的輸入,還挺開心的。我雖然有4年工作經(jīng)驗,但是不是走純技術(shù)系的,開發(fā),維護,見客戶,項目管理什么都干過,最近想換工作,糞發(fā)圖強惡補算法,數(shù)據(jù)結(jié)構(gòu)一類大公司特愛考的基礎(chǔ)知識。
這次后幾道題答的不好。尤其是有一個關(guān)于服務(wù)器session優(yōu)化和數(shù)據(jù)庫表水平拆分策略的,沒說到點兒上,回來的路上有了點兒思路,回來百度一下,發(fā)現(xiàn)八九不離十。前面幾個算法的也都是磕磕碰碰,好歹都說上來了,是不是最優(yōu)的就不好說了。
以前做信息系統(tǒng),更注重業(yè)務(wù)的獲取與功能的實現(xiàn),雖然所有人都喊性能、架構(gòu)什么的,但是實際上沒人在乎。反正撐死了也就那么點兒人用?;ヂ?lián)網(wǎng)公司真的是不一樣啊,對并發(fā)和大數(shù)據(jù)量的關(guān)注是深入骨髓的。感覺真是慚愧。雖然這幾年跑客戶談需求講ppt自詡也是混場面的,但是從心里希望自己在技術(shù)上也能再往前走一步。
看過“百度java面試題”的人還看了:
百度java面試題
上一篇:安卓面試題及參考答案