2014年9月22日 杭州
早上6點中從城北的家出發坐了2個小時的車終於到了天目山路華洋賓館。
我來到那是8點鐘。面試10點開始引導人讓我在沙發上先做一做。期間陸陸續續來個幾個人。有個直接終面的研究生也來得特別早。我就和他搭了搭話。求教面經。
他說他前兩輪問了問TCP慢啓動的一些問題。然後隨便聊聊天。。。
9點半開始引導者陸陸續續讓來的人把簡歷交上來。
10點我進了面試房。可以參考半澤直樹一開始的場景大家YY一下。面試官長得很年輕,看起來只有25歲左右。但滿頭白髮,讓我想起了馬雲的傳銷技術,和血汗工廠。。。
他看了看我的簡歷,讓我做下自我介紹。
我開始和他講了我大學時參加的ACM和數學建模還有暑假實習的一些工作。
我給他講了下我實習用Oracle
然後他問了我數據庫分頁查找怎麼查找。
我回答:select id,name form (select rownum id,name from table where rownum<=5050) tmp where tmp.id>=5000 and tmp.id<=5050;
接着他問了我什麼是樂觀鎖什麼是悲觀鎖,有什麼應用場景
我回答說:樂觀鎖是利用數據庫表中的一個version屬性記錄了版本信息。每個操作執行成功後都會與版本做比較如果版本沒有問題則將版本+1;否則返回操作失敗。
悲觀鎖是利用了for update實現的,當操作時用了for update時候oracle就會鎖住這張表禁止修改。樂觀鎖在併發量大的時候效果好。悲觀鎖利用了數據庫底層的鎖易於實現。
之後他看了我簡歷有說spring然後他問了我spring AOP 是用java什麼技術實現的
我回答說:利用了反射技術。
他追問那你能不能寫個反射呢
我回答說:我只記得了反射技術能通過類名、方法名獲得類的實例或者方法。但具體的類我需要查下api文檔。畢竟平時不怎麼用。
他問:model是什麼
我說:model是持久層中的對象。記錄數據庫關係映射的。
他追問:如果不用ibatis只用jdbc那你也寫model麼?
我回答說:當然寫啊。
他接着問:那你有沒有深入瞭解spring。
我回答說:沒有。我沒看過spring的源碼。框架我都是上手用的。不過我struts2有點研究過原理寫過demo。實現過類似的。
他接着問:xml有幾種解析方式。
我回答說:好像有兩種吧一個是S開頭的,還有事DOM解析。(S應該是SAX)我平時都用dom4j。如果是json格式我就用貴司的fastjson解析。
他追問:如果讓你不用dom4j你怎麼解析xml呢?我說那我肯定用棧做呀。然後亂說了說。他說thinking in java中好像有說到。
我回答:這本書我剛入手,還沒仔細看過。(貌似被鄙視了)
他問:你上次筆試時有道題你看看 for(i=1,n=1;n=0;i++) n++;這個程序
我回答說:貌似是個死循環啊。
他說:那你上次怎麼回答錯了。
我說:貴司智力題答到後面基本沒時間了。。。
他說:你寫個KMP試試。
我說:奧。。然後用C開始寫。他說你用java寫。我繼續改用java。Kmp算法忘記怎麼寫了。。。他讓我停止了。
接着他說:你可能沒有深入研究一些東西。你會用。但可能你不知道原理。
我說:這些框架什麼的目的當然我是先學會用。然後深入進去。框架很多我不能沉迷於此。
接着他說:你在學校除了實習做過什麼?
我回答:主要打比賽。然後隨便做了做小東西。什麼C#2048 、 學生管理系統、文件比較器、(聊天室)、(註冊機)後面兩個當時忘記說了。。。估計後面被鄙視了
接着他說:也就是你沒做什麼東西?
我說:嗯。。。他貌似想讓我當場寫2048.我說我帶來了電腦您要不要看看?
最後他讓我問了些問題。結束時和我握了握收讓我走了。
出來時看網頁源碼狀態變成了99.聽說這個狀態是備胎。。。。
總結:阿里可能需要的不光是技術好會寫代碼的。你可能還要有必要看看技術背後的東西。可能我一直以來是以業務爲主導。技術背後的知識有些欠缺的挖掘。阿里上市了,在杭州這家公司算是不錯的。作爲從小在杭州長大的。但這家公司的要求可能很高。而我可能還未達到。。。。。。