阿里技術類面經經驗分享

    2018-09-27    面經大全    【手機瀏覽本頁】

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

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

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

    4.HashMap數組的第一個元素存的是什么(我不知道然后他說HashMap可以存'吶畝'嗎,我聽成能不能存enum,我說可以可以能存Integer,String,enum,然后他說是null,不是enum...)

    5.HashMap和Hashtable的區別(線程安全不安全,能否存null,數組初始化容量,擴容不一樣,elements方法hashcode方法)

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

    7.Hashtable在null的處理是怎樣的

    8.線程的幾種狀態(運行阻塞就緒,他說還有其他的嗎,我說掛起?,他說線程生命周期什么的)

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

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

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

    12.synchronized和lock的區別

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

    14.lock看過多少

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

    16.String是可變的嗎,答final數組不可變,問是final的什么數組,答char

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

    18.StringBuffer和StringBuilder區別

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

    20.Java的引用類型你知道嗎(我說數組,new XXX都是引用,他說你看過深入理解JVM那本書嗎,我說看過其中的內存管理、垃圾回收、類加載這些,類文件結構這些沒怎么看,他說那就這個就不問了)

    21.那強引用弱引用這些知道吧(說了下強軟弱虛四種引用,然后問我后三種引用的應用場景,這個之前撇過一眼,真的不記得了...回去看了下軟引用可以實現緩存,弱引用可以用來在回調函數中防止內存泄露,虛引用能在這個對象被收集器回收時收到一個系統通知。)

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

    23.大對象是哪些(我說大數組和大字符串,他說多大叫非常大,我說好像有個參數能設置大概4MB?不是很清楚,然后就是年齡增長那個機制之類的)

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

    25.JVM里面的參數知道哪些,默認

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

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

    27.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. rt.jar被什么類加載器加載,什么時間加載

    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就很尷尬了),哎越面越感覺自己越菜,只能為阿里秋招攢波人品了...

    相關文章
    熱點文章
    江西快三预测