可可簡歷網

位置:首頁 > 面試 > 面試經驗

阿里技術類面經經驗分享

1.自我介紹一下,然後問你最擅長哪一方面(我說虛擬機器、集合)

阿里技術類面經經驗分享

2.他說HashMap我現在都不敢問了,出過很多笑話,很多人都是背的,自己沒辦法判斷是看的還是背的

3.簡單說下HashMap的get方法實現

Map陣列的第一個元素存的是什麼(我不知道然後他說HashMap可以存'吶畝'嗎,我聽成能不能存enum,我說可以可以能存Integer,String,enum,然後他說是null,不是enum...)

Map和Hashtable的區別(執行緒安全不安全,能否存null,陣列初始化容量,擴容不一樣,elements方法hashcode方法)

6.裡面的hashcode有什麼區別(HashMap多了和hashcode>>>16的一次異或,這個看過和他扯了好久好久,扯到為什麼2的整次冪反正扯了一大堆)

table在null的處理是怎樣的

8.執行緒的幾種狀態(執行阻塞就緒,他說還有其他的嗎,我說掛起?,他說執行緒生命週期什麼的)

9.這些狀態之間怎麼轉換的,哪些方法轉換

10.一個執行緒連著呼叫start兩次會出現什麼情況(這個討論了好久好久,他說給你設計這個start你怎麼處理這種情況,直接懵逼...提示結合那個執行緒狀態機制想下)

11.多執行緒這塊對哪些熟悉(我嚇得瑟瑟發抖,畢竟簡歷上寫的熟悉,但自己幾斤幾兩還是知道的,就是知道synchronized和volatile,ConcurrentHashMap,CopyOnWriteArrayList這些等等...還連忙補了一句,這些併發容器只是瞭解一點,沒看過原始碼,之前打算看ConcurrentHashMap的原始碼但是6000行可能會看的一知半解就還沒看)

hronized和lock的區別

13.由於我說了一般unlock放在finally裡面,他就問try後面一定要跟catch嗎,我說可以不跟finally但是一定要跟catch,他說try後面不能跟catch是你在書上看的還是怎麼的,我說我從沒見過try後面不跟catch的,再說try就是為了捕獲潛在的異常,沒有catch怎麼抓到丟擲的異常,他說我不能lly嗎。我說我沒見過,他說那這個問你也不合適...

看過多少

裡面用過哪些包(我說lang util juc math...他說util除了用過集合還用過哪些,我說Arrays、Collections,他說有哪些方法,我說排序二分查詢這些,他說Collections有用過嗎,裡面的排序介面用過嗎,答了之後又問如果是要升序裡面是寫a-b還是寫b-a)

ng是可變的嗎,答final陣列不可變,問是final的什麼陣列,答char

ng s="abc"和String s=new String("abc")區別,然後撤常量池還扯String那個intern()方法

ngBuffer和StringBuilder區別

方法裡面有個StringBuilder執行緒安全嗎(這也扯了好久好久,我沒轉過彎來,他就提示哪些會出現執行緒不安全的問題,我說競態條件,什麼i++讀取-修改-寫入,或者單例懶漢的先判斷後執行,然後又回到這個run方法裡面的StringBuilder,我又沒想出來,他又提示方法區裡面的變數存在哪,我說棧啊,遞迴還容易出現堆疊溢位,他又問存在棧裡面的是共享的嗎,我說是執行緒私有的,忽然恍然大悟...可能我一開始就沒明白這個題什麼意思,面試官真是一步一步提示你,真好...)

的引用型別你知道嗎(我說陣列,new XXX都是引用,他說你看過深入理解JVM那本書嗎,我說看過其中的記憶體管理、垃圾回收、類載入這些,類檔案結構這些沒怎麼看,他說那就這個就不問了)

21.那強引用弱引用這些知道吧(說了下強軟弱虛四種引用,然後問我後三種引用的應用場景,這個之前撇過一眼,真的不記得了...回去看了下軟引用可以實現快取,弱引用可以用來在回撥函式中防止記憶體洩露,虛引用能在這個物件被收集器回收時收到一個系統通知。)

22.然後問記憶體管理,記憶體管理記得清楚吧,我說之前看過,現在知道大概(打個預防針,防止自己尷尬...),他說現在忘沒忘,那我是能問還是不能問?然後我就笑了下...然後他就問說下JVM記憶體的分代吧,終於到我裝逼了...,扯了好久好久,就把深入理解JVM那本書裡面相關的都說了下

23.大物件是哪些(我說大陣列和大字串,他說多大叫非常大,我說好像有個引數能設定大概4MB?不是很清楚,然後就是年齡增長那個機制之類的)

r GC和Full GC,又扯了好久,反正基本把第二章第三章裡面的內容給問了個遍還問的特別細...

裡面的引數知道哪些,預設

大小是多少,我說只知道Xmx Xms Xss這幾個,他說你猜這個中間的m是什麼意思,我說是max,min?可又感覺不是...他說其實他也不知道,就是看看我的想象能力,他說他猜得是memory,還有這種操作...然後問Xmn是什麼,答不知道...,問你在猜猜...

26.G1停頓嗎,CMS回收步驟

為什麼會停頓,停頓時間(我說如果不停頓那個GC Roots沒辦法進行下去,必須停一下等著GC Roots遍歷完成,就和你媽給你打掃衛生時,你肯定不能還扔垃圾,肯定要停下來一樣)

28.類載入瞭解嗎(扯了一堆順便說了雙親委派機制,他問為什麼要每次從上往下載入?好處是什麼?我說比較安全...防止重複類載入...也不知道扯得對不對)

29.資料結構掌握程度怎麼樣?(再次瑟瑟發抖,面試官說連結串列我能問嗎?問怎麼判斷兩個單鏈表是否相交...就這題他提示我好久,最後還是沒想出來,就是這麼的渣...他說直接判斷最後一個節點是否相交就好,我說是不是類似一個竹子從中間砍了一點,然後前面分叉,後面相交這樣,他說對對對,是這樣的)

30.資料庫熟悉嗎(我把我知道的全說出來了,然後說除了這些都不會了,他說那我就不問了)

31.專案這些框架用到什麼程度,看過原始碼嗎

32.說說專案(因為是自學,我就直接說這個專案是跟網上的教程一步一步敲得,自學弄哪些高併發分散式的專案也不大現實。說說你寫在簡歷上的專案亮點,我說處理了橫向越權、縱向越權的情況,具體說了之後,他說,如果現在介面有個按鈕給你,你怎麼保證許可權控制,答了之後,他說如果有100個1000個這樣的呢,我說能不能用AOP把它分離開來這樣弄,他沒說行還是不行,然後問我聊聊Spring MVC吧,答了之後又問你知道有個過濾器吧,答了之後,他說其實是用過濾器來處理剛才提的那個問題的,我說對對對,就是類似過濾器處理全域性編碼那樣...反正又是一頓馬後炮...)

33.研究生期間周圍同學,專業啊,反正開始聊人生了,有沒有論文(本渣屬於無論文、無比賽、無獎學金的三無人員),你的優勢?舉個栗子。你是從研究生期間才開始寫程式碼的嗎?寫了大概多少行。平時除了學習,課餘時間幹什麼(差點就脫口而出玩遊戲,還好忍住了...)。每天學多久...專案過程中有沒有什麼頭痛的東西...你有沒有遇到一個Bug找了好多天都沒找出來的經歷...你有什麼問題要問我?對我技術方面有什麼建議?dubbo,zookeeper這些框架需要看嗎?這一面是一面還是二面?他說只是一面,之前的那個只是簡歷評估面...

全程97分鐘,面試官說沒太注意時間,正常40分鐘就要解決的。面完之後我說的都口乾舌燥了,感覺身體被掏空...

最後說一句,就喜歡這種問你最擅長什麼,這個東西我是能問還是不能問的面試官,雖然答得一般但還是五星好評...

如果你現在在JAVA這條路上掙扎,也想在IT行業拿高薪,可以參加我們的訓練營課程,選擇最適合自己的課程學習,技術大牛親授,7個月後,進入名企拿高薪。Java工程化、高效能及分散式、高效能、深入淺出。高架構。效能調優、Spring,MyBatis,Netty原始碼分析和大資料等多個知識點。如果你想拿高薪的,想學習的,想就業前景好的,想跟別人競爭能取得優勢的,想進阿里面試但擔心面試不過的

關注我,私信回覆555 進群獲取高清大綱、往期架構視訊、筆記、原始碼等資料。

變成面試中了...

面試狀態從簡歷評估中變成了待安排面試什麼鬼?難不成這面只是簡歷面嗎?

簡歷面:

面試官上來介紹了他們部門的業務,問我感不感興趣,我當然感興趣了,然後開始瘋狂輸出我...

1. 起手式:Object類有哪些方法?

2. wait方法能不能被重寫,wait能不能被中斷

3. 裡面哪些方法能被重寫

4. hashcode方法有什麼用

5. HashSet方法裡面的hashcode存在哪(我說類似HashMap存在Node裡面,他還是問了我好久,沒看過原始碼很虛)

6. 一個物件的id為1,通過setId(2)改為2,HashSet裡面有幾個物件,這問了好久好久,沒明白他什麼意思

7. 執行緒有幾種狀態,建立執行緒的幾種方法

8. 哪些方法能使執行緒從執行態變為阻塞態

9. 說說執行緒池,執行緒池中一個執行緒執行完任務後處於那種狀態

10. Thread類的interrupt,interrupted,isInterrupted方法的區別

11. 被什麼類載入器載入,什麼時間載入

12. 自己寫的類被什麼載入,什麼時間載入

13. 自己寫的兩個不同的類是被同一個類載入器載入的嗎?為什麼?

14. CPU能不能直接和二級快取打交道,接下來一頓問...

15. 三次握手

16. 網路程式設計會嗎

17. socket中accept什麼用

18. 兩個不同ip地址的計算機之間如何通訊

19. 專案中用過Spring嗎

20. Spring優點哪些,原始碼看過嗎

21. SpringMVC怎麼配置的,xml檔案怎麼載入的(問了下是要說原始碼),一次HTTP請求的過程(其實不是問這個的,它問的什麼我沒聽懂,我說是不是SpringMVC的請求執行過程,他說不是)

22. 資料庫連線池用過嗎,來說一說

23. 專案中的MySQL、Nginx這些都是自己配置的嗎

24. 有什麼想問我的?

總共47分鐘,被問懵逼了,但不得不說面試官的態度一直很好,不會的問題會不斷給你提示(然而學渣給再多的提示也答不出來,這TM就很尷尬了),哎越面越感覺自己越菜,只能為阿里秋招攢波人品了...