阿里面試重點總結

 轉: http://blog.csdn.net/houzuoxin/article/details/39007409

阿里面試重點總結

分類: java相關
1.Java基礎
     ArrayList,HashMap等集合框架類,重要基礎類String等的處理。HashMap的底層存儲結構等。
    (也能夠順帶考察下對接口,繼承,重載重寫的基本理解;以及異常處理的注意事項)。 
2. 數據結構與算法
   常見的查找算法及時間複雜度。
   常見的排序算法及時間複雜度。 
   比較重要的數據結構,如鏈表,隊列,棧的基本理解及大體實現。
3. 多線程問題
   1)線程安全問題。 HashMap 是否線程安全,爲什麼不安全。 ConcurrentHashMap,線程安全,爲什麼安全。底層實現是怎麼樣的。
   2)J.U.C下的常見類的使用。 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太高,通常是什麼問題。引伸出是否用過top,jstat,jstack等。
        常見的內存問題通常有哪些。 引伸出是否用過free,top, jmap等。

6. 框架使用
    spring aop的底層實驗原理。 aop與cglib,與asm的關係。
    spriong ioc的生命週期,(init-method,intilizingbean接口方法afterPropertiesSet的前後順序)等。
   Hibernate對一二級緩存的使用,Lazy-Load的理解;
7. 數據庫相關:
   1. mysql存儲引擎中索引的實現機制;
   2.數據庫事務的幾種粒度;
   3.行鎖,表鎖;樂觀鎖,悲觀鎖

8.網絡協議:
   HTTP協議;
   HTTPS協議,SSL協議及完整交互過程;

9. redis
   redis,memcache底層客戶端使用一致性Hash,看是否瞭解;
   redis的事件驅動多路複用底層實現;引伸到NIO編程, 看對Netty,或mina是否瞭解。
  若是候選者同時用過memcache,redis,看下是否瞭解二者在使用場景上的區別。以考察使用深度,以及是否有好奇精神。

10. 設計模式與重構
    常見設計模式,如singlen,factory,abstract factory,strategy,chain,adaptor,decorator,composite,template,absever等。
    重構:重構書籍

11. 學習與進取心
    最近上過上哪些技術站點; 最近在看哪些書。

12. 抗壓能力及抗壓意願
    瞭解加班狀況,瞭解是否願意在一段時間996等;
13 穩定性考察
      瞭解家庭婚姻情況, 瞭解購房及居住地,籍貫狀況,瞭解目前薪資,評估穩定性;
=======

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

七、http中,get post的區別java

其餘的面試,感受問的頗有表明性:node

 

 第一面(只記得這麼多了)mysql

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

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

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

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

  一、是否願意去杭州算法

  二、熟悉各類技術框架麼?源碼讀過麼?spring

  三、數據庫瞭解什麼?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規範等。
相關文章
相關標籤/搜索