阿里面試重點總結

1.Java 基礎
 
    ArrayList,HashMap 等集合框架類,重要基礎類String等的處理。HashMap的底層存儲結構等。


   
 (也可以順帶考察下對接口,繼承,重載重寫的基本理解。以及異常處理的注意事項)。 
2. 數據結構與算法

 
  常見的查找算法及時間複雜度。javascript


 
  常見的排序算法及時間複雜度。 
   
比較重要的數據結構,如鏈表。隊列,棧的基本理解及大體實現。
3. 多線程問題

 
  1)線程安全問題。 HashMap 是否線程安全。爲什麼不安全。 ConcurrentHashMap,線程安全。爲什麼安全。底層實現是怎麼樣的。java


 
  2)J.U.C下的常見類的使用。node

 ThreadPool的深刻考察; BlockingQueue的使用。(take,poll的差異,put。offer的差異)。原子類的實現。
 
  4)各類常見鎖使用
假設上面這些掌握很是好,還可以看看更深一點的 False Sharing。Cache Line。可見性與原子性等。


4. JVM

 
   Java內存分代模型,GC算法。JVM常見的啓動參數; CMS算法的過程。
   
 這塊回答較好,也可以僅僅是看畢玄的Java分佈式開發或網上文章的學習, 可以結合JVM啓動參數常見配置,jstat等命令。看下動手能力,意願。以及實際線上問題排查。

5.Linux使用與問題分析排查

 
   1). grep,awk。sed。 是否本身寫過shell腳本;
 
   2). 常見的cpu load太高,us太高,一般是什麼問題。mysql

引伸出是否用過top,jstat。jstack等。
 
       常見的內存問題通常有哪些。 引伸出是否用過free,top。 jmap等。

6. 框架使用

 
   spring aop的底層實驗原理。jquery

 aop與cglib,與asm的關係。
 
   spriong ioc的生命週期。(init-method,intilizingbean接口方法afterPropertiesSet的前後順序)等。web


  
 Hibernate對一二級緩存的使用,Lazy-Load的理解。
7. 數據庫相關:

 
  1. mysql存儲引擎中索引的實現機制。
 
  2.數據庫事務的幾種粒度;
 
  3.行鎖,表鎖。樂觀鎖,悲觀鎖

8.網絡協議:

 
  HTTP協議。
 
  HTTPS協議,SSL協議及完整交互過程;面試


9. redis

 
  redis ,memcache底層client使用一致性Hash。看是否瞭解;
 
  redis 的事件驅動多路複用底層實現。引伸到NIO編程, 看對Netty,或mina是否瞭解。


 
 假設候選者同一時候用過memcache。redis,看下是否瞭解二者在使用場景上的差異。redis

以考察使用深度。以及是否有好奇精神。算法



10. 設計模式與重構

 
   常見設計模式,如singlen。factory。abstract factory。strategy,chain。adaptor,decorator,composite,template,absever等。spring


 
   重構:重構書籍

11. 學習與進取心

 
   近期上過上哪些技術網站。 近期在看哪些書。



12. 抗壓能力及抗壓意願

   
 瞭解加班狀況。瞭解是否願意在一段時間996等。
13 穩定性考察

     
 瞭解家庭婚姻情況, 瞭解購房及居住地,籍貫狀況,瞭解眼下薪資,評估穩定性。
=======

1.進程和線程的差異
2.什麼叫線程安全?舉例說明
3.OSI七層模型。包含TCP,IP的一些基本知識
4.數據庫的鎖
5.DFS,BFS算法
6.另外一些諸如collection framework的Java基礎

七、http中,get post的差異

其它的面試,感受問的很是有表明性:

 第一面(僅僅記得這麼多了)

  一、筆試題第四題實現又口述了下

  二、有個每秒鐘5k個請求,查詢手機號所屬地的筆試題(記得不完整,沒列出),怎樣設計算法?請求再多,比方5w。怎樣設計整個系統?

  三、比較熟悉什麼技術?我說jvm和oracle。就讓我畫jvm的體系結構,畫了以後說各個部分的職責。並扯到執行期優化。

  第二面(沒有技術細節,都是泛泛的,但是我回答的比較保守。僅僅認爲能口若懸河的說上半小時纔敢說看過或瞭解)

  一、是否願意去杭州

  二、熟悉各類技術框架麼?

源代碼讀過麼?

  三、數據庫瞭解什麼?mysql瞭解麼

  四、前臺技術,看我用的ExtJS。就問是否瞭解JQuery

  五、進現在的公司,認爲對技術是否有提高?

  第三面,此面沒有技術問題

  第四面HR(感受這面問題回答的有點扯,畢竟是這麼幾年來首次面HR,以前面過二、3個公司。要麼很是早就掛了,要麼感受流程太長,本身不肯意麪下去)

  一、願意去杭州發展麼?我說要考慮,hr就問主要考慮什麼問題

  二、從技術角度來講。你認爲你跟你同窗比怎麼樣

  三、你的父母怎麼看待你的

      一、jvm性能調優都作了什麼

  二、高併發狀況下,咱們系統是怎樣支撐大量的請求的

  三、集羣怎樣同步會話狀態

  四、負載均衡的原理

  五、數據庫事務屬性

  六、二叉樹的遍歷算法

  七、hashtable和hashmap的差異

  八、併發、同步的接口或方法

  九、string、stringbuilder、stringbuffer差異

  十、https處理的一個過程,對稱加密和非對稱加密

  十一、線程的幾種狀態

  十二、瞭解手機開發麼

  1三、我的優點

  1四、與同事溝通的時候,假設遇到衝突了怎樣解決

  1五、工做中認爲哪方面欠缺?

  1六、有問題要問麼?

  1七、指望薪水

  1八、爲何要離開現在的公司

  * struts1.2和webwork的差異

  * hibernate和ibatis的差異

  * spring工做機制,IOC容器

  * servlet的一些相關問題

  * webservice相關

  * java基礎:jvm,HashSet等等

  * 考察學習新技術的能力


其它:
  
 1.  店鋪相關的業務特色決定。有先後端知識是加分項。 假設候選者熟悉javascript。
可以考察:

 
   1) 先後端優化的基本常識。比方js放在後面不堵塞等;原生js的理解。正則,時間冒泡等。
   
 2)firebug,fiddle等調試工具;  
 
   3)假設是基本使用,看下ext框架,jquery等熟悉程度。jquery插件機制。sizzle選擇器。


    
 假設以上都不錯,可以再深刻考察   
   
1)做用域鏈, 閉包的理解。
  
 2)看下是否瞭解最新的技術。 augularJS, nodejs,cmd規範,amd規範等。

相關文章
相關標籤/搜索