- 相關(guān)推薦
百度面試題 java
第一面
項(xiàng)目:
1、找一個(gè)項(xiàng)目,介紹下情況。其中遇到了什么問(wèn)題,每種問(wèn)題怎么樣的解決方案。
算法題:
2、一個(gè)排好序的數(shù)組,找出兩數(shù)之和為m的所有組合
3、自然數(shù)序列,找出任意連續(xù)之和等于n的所有子序列
數(shù)據(jù)結(jié)構(gòu):
4、從數(shù)據(jù)庫(kù)查出一個(gè)數(shù)據(jù)結(jié)果集,其中有一個(gè)時(shí)間字段,請(qǐng)用一個(gè)數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)使得可以最快速的查出某個(gè)時(shí)間段內(nèi)的記錄。
5、上一題我提到了B+樹(shù),他就繼續(xù)問(wèn)了為何用B+樹(shù)實(shí)現(xiàn)索引而不用二叉樹(shù)
數(shù)據(jù)庫(kù):
6、說(shuō)說(shuō)Oracle數(shù)據(jù)庫(kù)的事務(wù)隔離級(jí)別,以及遇到的相關(guān)問(wèn)題
這個(gè)我說(shuō)了標(biāo)準(zhǔn)的四種級(jí)別,Oracle實(shí)現(xiàn)的三種級(jí)別,并概述了下多版本讀一致性
項(xiàng)目相關(guān)技術(shù):
7、看到簡(jiǎn)歷上寫了個(gè)rpc,講講,我說(shuō)了跟rmi比較像,說(shuō)了異同點(diǎn),然后又展開(kāi)到內(nèi)存分配的問(wèn)題,不過(guò)沒(méi)搞懂他到底要說(shuō)什么。還問(wèn)題java客戶端跟c程序服務(wù)端的通信情況,比如說(shuō)c那邊直接一個(gè)結(jié)構(gòu)體過(guò)來(lái),怎么處理,答曰沒(méi)遇到過(guò)。
8、簡(jiǎn)歷上寫的jvm性能調(diào)優(yōu),說(shuō)說(shuō)都做了什么事情
9、說(shuō)到j(luò)vm的時(shí)候,說(shuō)到了我們用windows開(kāi)發(fā),就問(wèn)linux的腳本知道么,awk用過(guò)么
10、簡(jiǎn)歷上寫web框架開(kāi)發(fā)維護(hù),就問(wèn)瀏覽器端跟服務(wù)器端如何通信,不過(guò)最后只落到了java對(duì)象如何傳遞到客戶端,客戶端數(shù)據(jù)如何傳遞到服務(wù)端。
java基礎(chǔ):
11、并發(fā)同步的問(wèn)題,synchorized是如何使用,Object的wait、notify方法什么作用
框架:
12、是否了解spring,ioc的實(shí)現(xiàn),aop的實(shí)現(xiàn)方案,各種方案有什么限制
第二面
項(xiàng)目:
1、介紹下你做的項(xiàng)目,稍微高層次一些的介紹下,意思是不要沒(méi)完沒(méi)了的介紹
其中提到了主實(shí)例集群節(jié)點(diǎn)與主實(shí)例備用節(jié)點(diǎn)的單例狀態(tài)如何保持同步
2、rpc通信和rmi區(qū)別
3、并發(fā)訪問(wèn)同一條數(shù)據(jù)的時(shí)候,如何保證數(shù)據(jù)同步。
4、網(wǎng)站性能優(yōu)化都做了什么,具體的?ETag、Last-Modified、Expires、Cache-Control
5、最近看什么書,印象最深刻的是什么?
算法:
6、二叉樹(shù),找兩個(gè)節(jié)點(diǎn)的最底層的公共父節(jié)點(diǎn),給思路
7、單向鏈表反轉(zhuǎn),寫代碼
第三面(就記了這么多)
自我介紹:
1、個(gè)人基本情況,順便提到項(xiàng)目,就開(kāi)始扯了幾下
數(shù)據(jù)庫(kù):
2、數(shù)據(jù)庫(kù)性能優(yōu)化有做么?做了些什么?
設(shè)計(jì):
3、設(shè)計(jì)一個(gè)小商店進(jìn)銷存系統(tǒng)的的表結(jié)構(gòu)設(shè)計(jì),老板每天要知道賣出的貨物,要定期查看貨物的成本、銷售額和利潤(rùn)。
這里要注意,重點(diǎn)之一是如何進(jìn)行成本計(jì)算,要知道成本計(jì)算的幾種方法,選其中一種實(shí)現(xiàn),這個(gè)會(huì)影響表結(jié)構(gòu)的設(shè)計(jì)
算法:
4、1到1億的自然數(shù),求所有數(shù)的拆分后的數(shù)字之和,如286 拆分成2、8、6,如1到11拆分后的數(shù)字之和 => 1 + ... + 9 + 1 + 0 + 1 + 1。
之前去百度面試,整理了一下面試問(wèn)題。沒(méi)有筆試,直接和面試官交談。感覺(jué)面試官人挺好的,挺有耐心,每次面試回來(lái)不論公司大小,不管能不能拿到offer,但基本都能有一些有價(jià)值的輸入,還挺開(kāi)心的。我雖然有4年工作經(jīng)驗(yàn),但是不是走純技術(shù)系的,開(kāi)發(fā),維護(hù),見(jiàn)客戶,項(xiàng)目管理什么都干過(guò),最近想換工作,糞發(fā)圖強(qiáng)惡補(bǔ)算法,數(shù)據(jù)結(jié)構(gòu)一類大公司特愛(ài)考的基礎(chǔ)知識(shí)。
這次后幾道題答的不好。尤其是有一個(gè)關(guān)于服務(wù)器session優(yōu)化和數(shù)據(jù)庫(kù)表水平拆分策略的,沒(méi)說(shuō)到點(diǎn)兒上,回來(lái)的路上有了點(diǎn)兒思路,回來(lái)百度一下,發(fā)現(xiàn)八九不離十。前面幾個(gè)算法的也都是磕磕碰碰,好歹都說(shuō)上來(lái)了,是不是最優(yōu)的就不好說(shuō)了。
以前做信息系統(tǒng),更注重業(yè)務(wù)的獲取與功能的實(shí)現(xiàn),雖然所有人都喊性能、架構(gòu)什么的,但是實(shí)際上沒(méi)人在乎。反正撐死了也就那么點(diǎn)兒人用。互聯(lián)網(wǎng)公司真的是不一樣啊,對(duì)并發(fā)和大數(shù)據(jù)量的關(guān)注是深入骨髓的。感覺(jué)真是慚愧。雖然這幾年跑客戶談需求講ppt自詡也是混場(chǎng)面的,但是從心里希望自己在技術(shù)上也能再往前走一步。
根據(jù)記憶整理如下:
1. 有一個(gè)集合a,里面有n個(gè)正整數(shù),亂序排列。給定一個(gè)正整數(shù)N,求,a中任意兩個(gè)數(shù)相加等于N,共有哪些種組合情況。例如,集合為{1,3,44,2,4,5,54,222,368} N=6,則結(jié)果集為{1,5},{2,4}
這個(gè)題網(wǎng)上有類似的
2. Treemap的實(shí)現(xiàn)。
各種集合類的結(jié)構(gòu)和優(yōu)缺點(diǎn),大家都挺愛(ài)考的。以前做行業(yè)信息化,沒(méi)什么感覺(jué),但是如果很在意性能,搞清楚還是挺有用的。
3. 有兩個(gè)很大的文件,每個(gè)文件中都有1億行,每行一個(gè)整數(shù)。問(wèn)這兩個(gè)集合的交集是什么。給定的前提是機(jī)器內(nèi)存不足以完全裝入任意一個(gè)文件。
這個(gè)幾乎是網(wǎng)上的原題了
4. 堆和棧的定義,堆和棧里面的對(duì)象,哪個(gè)運(yùn)行速度快。
還問(wèn)了一些衍生的問(wèn)題,記不清了,只要看清楚java教材關(guān)于這方面的介紹足矣
5. 為了實(shí)現(xiàn)一個(gè)折線圖,需要將數(shù)據(jù)存入一種數(shù)據(jù)結(jié)構(gòu),折線圖橫坐標(biāo)是時(shí)間,縱坐標(biāo)是值,經(jīng)常的查詢是按時(shí)間段進(jìn)行查詢,如select value from t where begin>’20110101’ and end<’20111212’ ,問(wèn),使用java中的那種數(shù)據(jù)結(jié)構(gòu)比較好。
還是考java中的各種集合類,本質(zhì)上是問(wèn)各種數(shù)據(jù)結(jié)構(gòu)在順序/隨機(jī)的讀取/插入上的效率
6. 數(shù)據(jù)庫(kù)的索引通常用什么數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)?為什么用這種數(shù)據(jù)結(jié)構(gòu)。
就知道是btree,但是btree是咋回事,為啥不能用其他tree或者別的結(jié)構(gòu),這個(gè)看過(guò)一篇帖子以后才明白。算是學(xué)習(xí)了。
7. 如果數(shù)據(jù)庫(kù)中有2個(gè)表,表a字段為姓名、年齡,表b字段為姓名、單位。現(xiàn)在使用姓名字段做left join查詢,假設(shè)姓名字段都有索引了。問(wèn)數(shù)據(jù)庫(kù)是怎么實(shí)現(xiàn)的。如果把這兩個(gè)表看為在內(nèi)存中的數(shù)組,要自己實(shí)現(xiàn)left join,怎么實(shí)現(xiàn)?
面試官看我實(shí)在不知道數(shù)據(jù)庫(kù)里leftjoin怎么實(shí)現(xiàn)的,就讓我自己實(shí)現(xiàn)一個(gè)內(nèi)存中的,勉強(qiáng)答出來(lái)了吧,但是可能不太好。
8. 數(shù)據(jù)庫(kù)各種事務(wù)隔離級(jí)別
這個(gè)是純不記得了,以前工作中從來(lái)用不到,真是汗顏。
9. wait()方法和notify()方法干什么用的,wait()方法有什么使用限制,是哪兒都能用么?
對(duì)于一個(gè)從來(lái)不用多線程的人,這么簡(jiǎn)單的問(wèn)題也變得有點(diǎn)兒難。只知道干什么用的,不知道有什么限制。
10. 數(shù)據(jù)庫(kù)中有一個(gè)表有上億的數(shù)據(jù)量,怎么優(yōu)化?(主要是拆分,除了按業(yè)務(wù)拆分外,還有什么從技術(shù)角度的,可擴(kuò)展性好的水平拆分方式)
思路是拆沒(méi)錯(cuò),但是面試官問(wèn)的不是業(yè)務(wù)拆分策略,而是從技術(shù)上考慮。還得考慮擴(kuò)展性,比如拆好以后,數(shù)據(jù)量增長(zhǎng)迅速,又要拆了,怎么辦。這個(gè)水平拆分策略有好多,網(wǎng)上能搜到。但是我說(shuō)的都不是很有體系,以前沒(méi)弄過(guò),都是現(xiàn)場(chǎng)想。。
ps:當(dāng)時(shí)上新東方的時(shí)候,老師說(shuō),有的時(shí)候雖然你英語(yǔ)不好,但是有幾個(gè)單詞只要你記住了,說(shuō)的時(shí)候塞到句子里,人家就會(huì)覺(jué)得你特地道,
比如absolutely之流。我覺(jué)得面試的時(shí)候也有這種key words,比如位排序之流,說(shuō)的時(shí)候還得特舉重若輕。適用于各類新手和平時(shí)工作中壓根用不到各種排序算法的人,
主題:淘寶北京專場(chǎng)java面試題(2011-12-31)
第一面
1、說(shuō)說(shuō)項(xiàng)目
由于我?guī)啄暌恢弊鲆粋(gè)產(chǎn)品,從后臺(tái)做到前臺(tái),從業(yè)務(wù)開(kāi)發(fā)做到技術(shù)平臺(tái),所以就畫了整個(gè)產(chǎn)品部署架構(gòu)圖,b/s & c/s的,然后一層層的講解。
B/S現(xiàn)有Web框架改造、瀏覽器緩存、c/s補(bǔ)丁下載各種方式、cdn、c/s通信協(xié)議、rpc集群、http集群、負(fù)載均衡、集群前置機(jī)調(diào)度、后端服務(wù)器主從實(shí)例、后端服務(wù)器各種優(yōu)化(異步、性能隔離)、數(shù)據(jù)庫(kù)服務(wù)器各種優(yōu)化(索引、物化視圖、讀寫分離、帳套結(jié)轉(zhuǎn)、數(shù)據(jù)庫(kù)橫向切分、縱向切分)、層間調(diào)用性能監(jiān)控的實(shí)現(xiàn),對(duì)照產(chǎn)品架構(gòu)圖各個(gè)部分一路講下來(lái)。
2、http集群方案,我們的是反向代理服務(wù)器,自己有寫代理服務(wù)器,也可以用主流的web服務(wù)器,然后面試官就問(wèn)ngnix、lighttpd、apache三大主流web服務(wù)器的區(qū)別...了。。。
3、如果有機(jī)會(huì)重新設(shè)計(jì)你們的產(chǎn)品,你會(huì)怎么做?
這個(gè)當(dāng)時(shí)回答的不好,主要從通信協(xié)議和數(shù)據(jù)存儲(chǔ)兩塊來(lái)說(shuō)了,這樣說(shuō)有些片面。因?yàn)槲覀儺a(chǎn)品本身又很多問(wèn)題,只通過(guò)部署架構(gòu)圖是反映不出來(lái)的,如二次開(kāi)發(fā)問(wèn)題、補(bǔ)丁下載問(wèn)題、不同模塊java包相互依賴問(wèn)題、技術(shù)框架比較封閉、構(gòu)建系統(tǒng)方案落后、文檔缺失等,我們內(nèi)部經(jīng)歷過(guò)很多的痛苦的,但是當(dāng)時(shí)思維局限在了部署架構(gòu),所以沒(méi)有說(shuō)出這些問(wèn)題。
第二面
4、網(wǎng)站性能優(yōu)化如何優(yōu)化的?
自己一點(diǎn)網(wǎng)站性能優(yōu)化經(jīng)歷,結(jié)合《構(gòu)建高性能Web站點(diǎn)》,扯了一通,跟一面有點(diǎn)類似。
5、本來(lái)要花產(chǎn)品架構(gòu)圖,我翻過(guò)簡(jiǎn)歷,后邊有一面時(shí)候畫的,就沒(méi)要畫了。然后就要我在黑板(暫且叫做黑板)上畫jvm體系結(jié)構(gòu)。
畫了jvm體系結(jié)構(gòu),講解了jvm各個(gè)組件和組件的交互、GC算法、各種垃圾收集器、運(yùn)行期優(yōu)化、產(chǎn)品中遇到的與jvm相關(guān)的問(wèn)題如oom、ClassLoader問(wèn)題等,并針對(duì)HotSpot VM的實(shí)現(xiàn)講解了堆、非堆內(nèi)存劃分
第三面(HR面)
6、看我面過(guò)b2b和支付寶,問(wèn)了下情況
b2b面完了,但是沒(méi)過(guò);支付寶過(guò)了2面
7、個(gè)人優(yōu)缺點(diǎn)
8、是否愿意來(lái)杭州
第四面(視頻電話面,杭州某大牛)
9、介紹項(xiàng)目。對(duì)于Web框架的改造,跟原有框架的異同
10、下班后的時(shí)間有學(xué)習(xí)技術(shù)么
11、是否參加過(guò)開(kāi)源項(xiàng)目
------------------------------------------------------------------
不好意思,是2011-12-31,害的大家跟帖穿越...
本人工作時(shí)間不短了,4年半的小本。這次面,過(guò)了p6,淘寶商城的業(yè)務(wù)開(kāi)發(fā)部門。
之前三年是做ERP業(yè)務(wù)開(kāi)發(fā),技術(shù)沒(méi)什么提升。最近兩年在平臺(tái)部,半年前覺(jué)得混的快掛了才狂翻公司文檔、讀源碼、看
【百度面試題 java】相關(guān)文章:
Java面試題07-12
java面試題五07-11
java 基礎(chǔ)面試題07-11
java面試題307-13
JAVA面試題(問(wèn)題)07-13
誰(shuí)有java面試題?07-13
java軟件面試題07-13
java經(jīng)典面試題匯總07-13
java基礎(chǔ)面試題07-13