1. 程式人生 > >網上的一個阿里java面試題

網上的一個阿里java面試題

阿里面試題:

一面:電話面試:80分32秒)
1.自我介紹?

2.做過哪些專案?專案中遇到哪些難點,你是怎樣解決的?單點登入系統說一下?分佈
式快取的使用場景?(說好的基礎呢,上來就是專案,毫無準備,導致好多東西都記不
起來了。面試官還說“那你說一個你記得的專案”,手動無奈。。。)

3.你實習的時候JDK用的是那個版本,這個版本有什麼新的特性?

4.G1回收器和其他回收器有什麼區別?

5.垃圾回收為什麼會停頓?哪些物件可能作為GCRoots?

6.垃圾回收分代收集演算法?為什麼會有兩個Survivor區?new一個物件會儲存在哪裡?

7.Java記憶體模型?volatile關鍵字,使用場景?原子性的理解?先行發生原則?

8.場景題:現在有三個執行緒,同時start,用什麼方法可以保證執行緒執行的順序,執行緒
一執行完執行緒二執行,執行緒二執行完執行緒三執行?

9.你是怎麼理解執行緒安全的?HashMap是執行緒安全的麼?如果多個執行緒同時修改HashMap
時會發生什麼情況?

10.ConcurrentHashMap底層原理?每個版本的實現上有什麼區別?

11.靜態代理和動態代理的區別?動態代理是怎麼實現的?

12.深拷貝和淺拷貝的區別?

13.你做過hadoop的專案,為什麼要用hadoop?你們處理的檔案是什麼格式的?寫了幾
個mapper幾個reducer?

14.zookeeper你們用了幾臺,用來幹什麼的?一般情況下都是奇數臺,那麼如果一臺掛
了,偶數臺如何實現master選舉?zookeeper的兩種啟動模式?

15.TCP首部?TCP為什麼是可靠的?三次握手四次揮手?

16.Solr是如何建立索引的? Lucene的底層原理?

17.你平時喜歡做什麼?看過哪些書?最近在看什麼書?(這裡有個段子,我:最近在
看《HTTP權威指南》。面試官:什麼?HTTP潛規則?我:???)



二面: (視訊面試:47分鐘)
1.你那邊怎麼有點黑啊?(我靠,我也想說啊,暑假寢室集中供電,然而我們寢室沒有
電。發麵經也不忘吐槽學校,簡直坑啊。。。抱著檯燈瑟瑟發抖。。。)

2.現在在哪裡實習?實習主要做些什麼?

3.說一下Java裡面你最感興趣的一個部分?

4.熟悉Java的哪些框架?用了Spring的哪些東西?Spring現在最新的版本是多少?

5.講一下MVC設計模式,有什麼框架用到了這個模式?

6.場景題:一個Controller呼叫兩個Service,這兩Service又都分別呼叫兩個Dao,問
其中用到了幾個資料庫連線池的連線?

7.安全方面:如何防止 SQL注入?如何防止使用者刪除其他使用者的資訊?表單提交可以跨
域麼?自己寫的介面如何防止被其他人惡意呼叫?

8.zookeeper偶數選舉問題?(感覺很重視zookeeper啊)

9.hadoop為什麼要將檔案分塊並且複製三份,複製兩份不行麼?這樣不浪費空間麼?
namenode腦裂問題?zookeeper如何管理全域性配置檔案?你們的Hadoop 專案用到了幾臺
機器,每個機器的作用?

10.Servlet是執行緒安全的麼?

11.建立一個物件的詳細過程?其中發生了些什麼?

12.Java NIO你瞭解麼?講一講你最熟悉的部分?

13.你在生活中有沒有遇到什麼神奇的事情,可以分享一下麼?比如灑水車為什麼老是
在陰天或者快下雨的時候灑水?還有我和我老婆經常吵,陽臺的花是早上澆好呢,還是
晚上澆好呢?(我靠,這是什麼套路)

14.你認為你身邊的同學怎麼樣?如果你正在打遊戲,你想讓同學幫忙帶瓶水,你覺得
有多少人會幫你帶?(這又是什麼套路?讓我去送水?)

15.你還有什麼想問的?



三面:(HR面,視訊面試:22分鐘)
1.7歲一個階段,說一說每一個階段對你影響最大的一個人或事?

2.說一下你大學階段做了些什麼?

3.你感覺你前兩個面試官怎麼樣?

4.春招的時候為什麼沒有去bat實習?

5.你當初準備暑期實習的話,是想學到些什麼?現在感覺自己有哪些進步?

6.你還有什麼想問的?(當然是萬能的培養計劃和晉升機制)

四面:(交叉面,:電話面試:30分鐘)
1.自我介紹?

2.說一下最能代表你技術水平的專案吧?

3.maven如何進行依賴管理,如何解決依賴衝突?

4.maven的源和外掛瞭解哪些?maven的生命週期?

5.如何保證分散式快取的一致性?分散式session實現?

6.spring的bean的建立時機?依賴注入的時機?

7.你們的圖片時怎麼儲存的,對應在資料庫中時如何儲存圖片的資訊的?

8.單點登入系統的實現?

9.專案中用到的JDK的哪些特性?

10.java8流式迭代的好處?

11.多執行緒如何在多個CPU上分佈?執行緒排程演算法有哪些?

12.執行緒排程和程序排程的區別?

13.專案中用到了哪些集合類?

14.說一下TreeMap的實現原理?紅黑樹的性質?紅黑樹遍歷方式有哪些?如果key衝突
如何解決?setColor()方法在什麼時候用?什麼時候會進行旋轉和顏色轉換?