今天面了百度的前端實習職位。一面。時間大概是50分鐘。面試官是位很帥氣的小夥子,很是友好的一我的。進門的時候他讓我等一會,我瞄了一眼他的電腦屏幕,發現他在coding……javascript
9點50開始的面試。php
面試官:自我介紹一下。前端
我:blablabla。java
面試官:javascript的類型轉換(好比"2"*1, "a"*1)。web
我:javascript會調用valueOf來轉換爲一個基本數據類型,在這種狀況下,若是javascript不能經過valueOf轉成一個number,會嘗試調用toString,而後再轉。實在沒法轉就只能NaN了。面試
面試官:說說類的建立、繼承和閉包。spring
我:new一個Function,繼承經過prototype。超類和子類能夠經過子類的prototype=new 超類(),而後把prototype的constructor指回子類。閉包是一個變量做用域的問題(這裏我也不是特別清楚,隨便說了些)。sql
面試官:說說get和post請求的區別。數據庫
我:1.參數形式不一樣;2.發送數據大小限制不一樣;3.在後臺轉碼時不一樣,post能夠簡單地修改編碼方式來避免亂碼,get不能夠。後端
面試官:Get請求最大能多大。
我:幾K吧,2K?
面試官:你猜的?
我:。。。嗯。
面試官:說說事件綁定。
我:W3C是addEventListener,IE是attachEvent。
面試官:這兩種事件綁定有什麼不一樣。
我:。。。。(真心不知道有什麼不一樣,亂說一氣,難道是綁定事件執行的前後順序不一樣?)。
面試官:這兩種綁定仍是有很大差異的。
我:。。。。是的是的,以前沒有了解過。
面試官:說說事件冒泡的機制。
我:blablabla。
面試官:若是上層元素想知道究竟是從哪一個元素起的泡,怎麼搞?
我:Event的target屬性吧。
面試官:不是,再想一想。
我:真心不會。。。(面試官也沒告訴我答案,整個面試過程當中感受這位面試官側重於指引你本身去找尋答案,不會告訴你答案的)
面試官:作一個圖片輪播的腳本。
我:blablabla(總之就是經過父元素設置overflow爲hidden,position爲relative,而後幾個圖片列表修改他的left值。由於以前我寫過一個,因此我還說道瞭如何實現動畫序列,好比點擊一次向左,一次向右,再來一次向左,動畫會依次執行。)
面試官:圖片加載比較慢,你這個輪播組件怎麼解決。
我:new一個Image對象,而後註冊onload事件和src屬性,都onload完畢了再顯示,此前顯示一個佔位符。
面試官:若是圖片不少,有兩萬個,怎麼辦。
我:按需加載,用多少加載多少(而後講了個人實現思路)。
面試官:可是用戶瀏覽了不少張圖片會愈來愈卡。
我:把以前看過的圖片從dom裏刪掉,來釋放內存,可是要是用戶回頭又看以前看過的就比較麻煩了,不曉得這個圖片該往哪裏插入了。
面試官:是的,這道題我不告訴你正確答案,你能夠好好想一想(面試結束後面試官讓我看了百度圖片搜索的例子)。
我:好的。
面試官:你後臺用哪一個語言最多?
我:java。
面試官:Why java?
我:好用。並且我發現其實大運算時跟C++的效率也差很少。
面試官:仍是要比C低一些的。
我:嗯。
面試官:用java寫網站仍是客戶端?
我:網站。
面試官:用框架嗎?
我:看需求,需求簡單就用servlet能夠了。
面試官:說說servlet的生命週期。
我:blablabla。
面試官:前臺怎麼寫。
我:。。。JSP<%%>不就好了。
面試官:我知道。我問還有其餘方案嗎?
我:咱們如今用模板引擎,好比velocity。
面試官:講講velocity怎麼寫。
我:blablabla。
面試官:和JSP比,優點如何?
我:速度快,寫起來簡單,並且好看。
面試官:應該不會比JSP快啊。
我:(這個問題咱們爭論了很久,面試官是沒有用過velocity的)。
面試官:velocity能夠自定義標籤嗎?
我:能夠自定義指令,每一個指令其實對應的就是一個java類。自定義指令要繼承Directive類。
(而後問了些MVC,此處不表)
面試官:(由於我說道這一年過來都在寫後端,針對spring作了一層淺封裝)說說你的封裝裏DAO怎麼實現的。
我:泛型+模板設計模式。緩存是裝飾器模式搞得,裝飾的是不帶緩存的類。
面試官:那表的結構已經事先定好了嗎?
我:對的,經過反射獲取類屬性,而後轉換爲sql,好比loginTime轉成login_time,類名UserData轉成user_data。這個要事先商量好才能夠。不遵照約定就無法搞了。
面試官:緩存用什麼實現的。
我:Ehcache。
面試官:和memcache差很少嗎?
我:沒錯。
面試官:更新策略是什麼。
我:LRU。而後get作緩存,update和delete都直接刪除對象。
面試官:用什麼作key?
我:id。
面試官:說說緩存怎麼避免併發下髒讀等不一致問題。
我:個人類都是單例的(我傻逼了,單例和併發有關係嗎?面試官後來也糾正了我這個錯誤)。讀是沒有問題的,寫的話我沒有作處理,感受ehcache本身內部作了處理吧,好比代碼同步,或者用concurrenct包下的類。
面試官:。。。。(這道題我沒明白他要問什麼,他也沒明白我在說什麼。。。好混亂)不糾結這個問題了。數據庫鏈接池怎麼實現的。
我:直接用的DBCP。
面試官:我那時都是本身寫的。
我:。。。(心中默唸:牛逼)。
面試官:好的,有什麼問題想問個人。
我:百度是彈性工做制嗎?Web前端部門能夠接觸到其餘技術嗎?
面試官:彈性工做制,咱們通常都是十點鐘來上班(笑)。Web前端部門以寫JS爲主,會接觸到Controller的編寫,不過咱們是用php的。也會接觸到服務器的配置和web工程的部署。不過大部分時間都在寫JS上。
而後咱們就互道Goodbye了。
個人處女面,就這樣獻出去了。