1. 程式人生 > >2017阿里校招內推面試回憶

2017阿里校招內推面試回憶

               

首先,我得宣告,我經歷了內推的四次電話面試,一直到hr面了,但是最後還是被掛了,所以,對大家的幫助可能不是那麼大,如果大家對我這個失敗者的經歷不是很感興趣的就不用往下看

後來校招的時候,筆試直接就掛了,我猜測是不是跟我之前內推失敗的記錄有關




OK,先介紹一下自己,本人是西安一所計算機還可以的211高校的研二學生,沒有實習經歷。7月底請師兄做了內推。


8月1日 一面  50分鐘

1 專案需求分析有沒有用工具?
  沒有
2 Uml中的用例圖熟悉不?
  我知道類圖與時序圖,我清楚的知道類圖依賴,關聯,聚合,組合的區別,但是用例圖真不熟悉
3 servlet裡有哪些方法,是否執行緒安全
  首先我們自己寫的MyServlet是繼承自HttpServlet的,而HttpServlet是繼承自GeneiicSerlvet,GenericServlet實現了Servletconfig介面,同時GenericServlet裡面也有一個GenericServlet物件
  HttpServlet有init方法,service方法,還有destory方法,還有dopost,doget
  它不是執行緒安全的,如果給servlet裡面加了成員變數就執行緒不安全了
  參考資料:
http://blog.csdn.net/dlf123321/article/details/49201303

4 Http的Post與Get有什麼區別
  post是加密的,在瀏覽器的位址列上看不到傳遞的訊息,get相反
5 那麼post一定是安全的麼?
  不是,使用chrome或者火狐的除錯工具,即使是post也能看到傳遞的訊息
  面試官問,那如何讓post真的的安全
  這個我當時沒回答上來
  後來找資料,得到下面的結論
  使用md5加密,先生成一個隨機字串例如a,使用者提交的密碼是b,讓a與b組合起來,進行加密成為c,然後把c與a組合成為d,通過網路傳遞到後臺
  後臺通過使用者名稱(這個沒有加密),找到資料庫裡的真實密碼,然後與隨機字串a組合成為c',再讓a與c'組合成為d',比較d與d'是否一致就OK
  但是我有一個問題,首先使用者在瀏覽器上能不能看到隨機字串到底是什麼?
  第二加密得到c之後,再與a組合成d,這一步是必須的麼?
  這個兩個問題,我沒有想明白,那我朋友知道的,告訴我一聲

4 servlet與jsp的關係?
  jsp被tomcat編譯成serlvet,而servlet就是一個普通的java類
  jsp中的那些隱含物件,例如application,out等都是serlvet的servlet方法裡面的區域性變數或者引數
5 tomcat4與7的區別,最新的是幾?
  4的聯結器是一個叫p開題的聯結器,在7中有更先進的做了替換
  7支援nio
  最新的是9
6 hashmap原理
  我就說了連結串列,entry,頭插法等等
7 負載均衡的實現
  分類有dns,http,應用層負載,ip層負載,資料鏈路層負載
  參考資料: http://blog.csdn.net/dlf123321/article/details/52131542
8 session共享
  談到了一致性hash,就是那個大的hash環
9 說說比賽
  我自己參加過阿里的天池大資料 筆試,我介紹了一下比賽,同時說了我的幾個創新點
10 java載入xml的方式有幾種,都有什麼區別?
   我回答:我記得有4中,有org和w3c的,具體的區別不知道
   其實,後來查資料發現有dom,jdom,sax,dom4j等等
   具體區別如下: https://my.oschina.net/zmf/blog/397468
11 http是七層協議裡面的第幾層?  我該說說http協議的組成
   這個我不知道,當時就蒙了一個表現層,然後我說了一下http的組成,請求頭請求體之類的
   其實http是應用層的
12 設計模式,講解  
   我談到了tomcat中用到的facade模式,然後舉了我在家是子女但是在學校就是學生,同一個物件有不同的職責,這個例子
   後來想想,設計模式這個東西,第一面試的時候,自己就不應該主動提,第二就是即使談到了這個,也不要舉例子,你就直接背定義就好,因為我舉得例子是在太爛了
13 struts2的實現原理
   就是struts2的那個大圖,在struts2的文件裡就有


 總結
1 面試的時候,不要太激動,你講話講的太快,面試官會聽不清楚
2 要告訴面試官 你熟悉哪些東西,然後把向你熟悉的領域引。
3 基礎很重要 8月初我對資料結構和網路的東西還都沒有複習,解析xml和http是第幾層的回答是個大敗筆



8月5日 二面  30分鐘
1 虛擬機器長時間執行,會出問題,你遇到過哪些?  
  我自己沒有遇到過,單身我會寫程式碼驗證虛擬機器可能出現的問題,例如堆溢位,棧溢位等等
  後來想想,人家說的應該是你有沒有過處理虛擬機器記憶體洩露的經驗
  後來學習了一下: http://blog.csdn.net/ylyg050518/article/details/52354879
2 說話你的專案
  bababa.....
3 專案有什麼難點
  我當時給他說的是這個: http://blog.csdn.net/dlf123321/article/details/50218829
  然後說我覺得這就是單例模式在應用層的一個表現
4 說說單例模式,你是怎麼寫的?
  這個我當時就把我的部落格的內容幾乎複述了一遍:
  http://blog.csdn.net/dlf123321/article/details/42062669
5 有沒有想過把你們的專案改造一下
  我從前端,js與css的位置,圖片放到多個域名下,cdn
  聊到了應用層的負載均衡,叢集,快取,訊息佇列,到資料的分庫分表
  說了很多,參見: http://blog.csdn.net/dlf123321/article/details/51360739
6 那你實踐過哪些呢?
  恩,我試過快取,但是都是小範圍的,帶學習性質的使用(開始心虛了,上面的那些理論我懂,但是實踐真沒有),
7 你還有什麼問題麼?  
  我說,那如果我以後能加入阿里...還沒說完,我就又說,額,這個扯遠了,不說這個了


總結
1 實踐太少,只知道理論不行呀
2 我是沒有實習經歷的,這個是個硬傷,我應該從下面三方面來補充一下
  2.1大的比賽 例如阿里的那個天池大資料 我得好好梳理一下
  2.2開源專案 不只是我閱讀過的原始碼,還得有總結的開源專案
  2.3重複輪子 有沒有複寫過tomcat呀?(我讀過tomcat4的原始碼,有二十幾篇部落格來記錄學習過程)回去梳理梳理
3基礎  
  就是演算法與作業系統




8月11日 三面  20分鐘
1 說說專案
  1.1 bjadmin 看下級問題(這個敘述略麻煩,反正就是專案中的一個難點吧)
  1.2 我說了阿里的那個比賽,他和我聊了一下比賽的事,我分析了一下我的專案的設計思想,同時告訴他,比賽結束後,我還去git上看了別人的優秀的程式碼,並且與自己做對比
2 效能擴張
  2.1效能 高可用 跟一面那個差不多 http://blog.csdn.net/dlf123321/article/details/51363186
  2.2 session環 就是那個一致性hash
  2.3 服務化-->dubbo呼叫或者rocketmq
3 提問題 
  我問他,關於spring,聽說阿里有過重寫,你們咋做的?
  他說自己並不搞那部分,不是很清楚,他猜測肯定是跟業務相關的...balabalabala....
  我當時就趁機提到了,前幾天的阿里開源了他們的mysql分支據說在秒殺情況下,效能提升了100唄




8月15日 hr面
1 你沒有實習過麼
  沒有,老師不準
2 我主動提到了之前幹過的一個帶有創業特性的的專案,這個聊了一會
3 我提到了阿里的大資料比賽
4 她問:你做這些的時候,沒有耽誤老師的工作麼?
  我回答都是課餘時間做的
5 你有什麼規劃麼?
  其實我得回答偏題了
  我說我想進阿里,然後說我看過好多阿里的書,知道阿里的技術很牛逼,然後列舉了很多技術,同時說我還知道阿里有個多隆大神,balabala..


 後來我從師兄那知道,我得hr面試都過了,但是後面還是被拒了
 我自己總結主要的問題出在第一二次面試上
 第一次是因為 基礎不夠紮實,http是第幾次都不知道..我也是醉了
 第二次是因為 沒有實踐,光知道理論上不行的

 其實整體來說,我也認了,咱和優秀的學生,確實是有差距的





           

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!https://blog.csdn.net/jiangjunshow