1. 程式人生 > 程式設計 >2019百度阿里Java面試題(基礎+框架+資料庫+分散式+JVM+多執行緒)

2019百度阿里Java面試題(基礎+框架+資料庫+分散式+JVM+多執行緒)

前言

很多朋友對面試不夠瞭解,不知道如何準備,對面試環節的設定以及目的不夠瞭解,因此成功率不高。通常情況下校招生面試的成功率低於1%,而社招的面試成功率也低於5%,所以對於候選人一定要知道設立面試的初衷以及每個環節的意義,有的放矢... 通過現場分析網際網路的JD,讓面試者掌握分析公司對技術的要求和定位,進而知道自己是否適合該崗位以及應該如何準備。想提高面試成功率一定要了解公司的業務,去分析公司對應業務的站點瞭解他們使用的技術棧,進而去準備相關的知識,最後一小節關於自我介紹,大多數面試失敗都是簡歷和自我介紹導致的,只是大多數人並不自知。.

二面/三面更側重於對Java知識的深度和廣度來進行考察,這個環節不再侷限於基礎知識,更多的是底層原始碼、專案實戰等方面。

基礎與框架

1.String類能被繼承嗎,為什麼 2.String,Stringbuffer,StringBuilder的區別? 3.ArrayList和LinkedList有什麼區別 4.類的例項化順序,比如父類靜態資料,建構函式,欄位,子類靜態資料,建構函式,欄位,他們的執行順序 5.用過哪些Map,都有什麼區別,HashMap是執行緒安全的嗎,併發下使用的Map是什麼,他們內部原理分別是什麼,比如hashcode,擴容等 6.HashMap為什麼get和set那麼快,concurrentHashMap為什麼能提高併發 7.抽象類和介面的區別,類可以繼承多個類麼,介面可以繼承多個介面麼,類可以實現多個介面麼 8.什麼情況下會發生棧記憶體溢位 9.什麼是nio,原理 10.反射中,Class.forName和ClassLoader區別 11.tomcat結構,類載入器流程 12.講講Spring事務的傳播屬性,AOP原理,動態代理與cglib實現的區別,AOP有哪幾種實現方式 13.Spring的beanFactory和factoryBean的區別 14.Spring載入流程 15.Spring如何管理事務的

多執行緒

1.線城池的最大執行緒數目根據什麼確定 2.多執行緒的幾種實現方式,什麼是執行緒安全,什麼是重排序 3.volatile的原理,作用,能代替鎖麼 4.sleep和wait的區別,以及wait的實現原理 5.Lock與synchronized 的區別,synchronized 的原理,什麼是自旋鎖,偏向鎖,輕量級鎖,什麼叫可重入鎖,什麼叫公平鎖和非公平鎖 6.用過哪些原子類,他們的引數以及原理是什麼 7.用過哪些執行緒池,他們的原理簡單概括下,建構函式的各個引數的含義,比如coreSize,maxsize等 8.有一個第三方介面,有很多個執行緒去呼叫獲取資料,現在規定每秒鐘最多有10個執行緒同時呼叫它,如何做到。 9.spring的controller是單例還是多例,怎麼保證併發的安全 10.用三個執行緒按順序迴圈列印abc三個字母,比如abcabcabc 11.ThreadLocal用過麼,原理是什麼,用的時候要注意什麼 12.如果讓你實現一個併發安全的連結串列,你會怎麼做

JVM相關

1.jvm中一次完整的GC流程(從ygc到fgc)是怎樣的,重點講講物件如何晉升到老年代,幾種主要的jvm引數等 2.你知道哪幾種垃圾收集器,各自的優缺點,重點講下cms 3.當出現了記憶體溢位,你怎麼排錯 4.JVM記憶體模型的相關知識瞭解多少 5.簡單說說你瞭解的類載入器 6.JAVA的反射機制

網路

1.http1.0和http1.1有什麼區別 2.TCP三次握手和四次揮手的流程,為什麼斷開連線要4次,如果握手只有兩次,會出現什麼 3.TIME_WAIT和CLOSE_WAIT的區別 4.說說你知道的幾種HTTP響應碼 5.當你用瀏覽器開啟一個連結的時候,計算機做了哪些工作步驟 6.Linux下IO模型有幾種,各自的含義是什麼 7.TCP/IP如何保證可靠性,資料包有哪些資料組成

架構設計與分散式

1.tomcat如何調優,各種引數的意義 2.常見的快取策略有哪些,你們專案中用到了什麼快取系統,如何設計的,Redis的使用要注意什麼,持久化方式,記憶體設定,叢集,淘汰策略等 3.如何防止快取雪崩 4.用java自己實現一個LRU 5.分散式叢集下如何做到唯一序列號 6.設計一個秒殺系統,30分鐘沒付款就自動關閉交易 7.如何做一個分散式鎖 8.用過哪些MQ,怎麼用的,和其他mq比較有什麼優缺點,MQ的連線是執行緒安全的嗎 9.MQ系統的資料如何保證不丟失 10.分散式事務的原理,如何使用分散式事務 11.什麼是一致性hash 12.什麼是restful,講講你理解的restful 13.如何設計建立和保持100w的長連線? 14.解釋什麼是MESI協議(快取一致性) 15.說說你知道的幾種HASH演演算法,簡單的也可以 16.什麼是paxos演演算法 17.redis和memcached 的記憶體管理的區別 18.一個線上檔案系統,檔案可以被編輯,如何防止多人同時對同一份檔案進行編輯更新

演演算法

1. 10億個數字裡裡面找最小的10個 2.有1億個數字,其中有2個是重複的,快速找到它,時間和空間要最優 3. 2億個隨機生成的無序整數,找出中間大小的值 4.遍歷二叉樹

資料庫

1.資料庫隔離級別有哪些,各自的含義是什麼,MYsql預設的隔離級別是是什麼,各個儲存引擎優缺點 2.高併發下,如何做到安全的修改同一行資料,樂觀鎖和悲觀鎖是什麼,INNODB的行級鎖有哪2種,解釋其含義 3.SQL優化的一般步驟是什麼,怎麼看執行計劃,如何理解其中各個欄位的含義,索引的原理? 4.資料庫會死鎖嗎,舉一個死鎖的例子,mysql怎麼解決死鎖 5.MYsql的索引實現方式 6.聚集索引和非聚集索引的區別 7.資料庫中 BTREE和B+tree區別 我個人覺得面試也像是一場全新的征程,失敗和勝利都是平常之事。所以,勸各位不要因為面試失敗而灰心、 喪失鬥志。也不要因為面試通過而沾沾自喜,等待你的將是更美好的未來,繼續加油!

2019年Java面試題整理了1000多道400多頁pdf檔案,歡迎大家關注我的公種浩【程式設計師追風】,文章都會在裡面更新,整理的資料也會放在裡面。 針對於上面的面試問到的知識點我總結出了網際網路公司Java程式設計師面試涉及到的絕大部分面試題及答案做成了檔案和架構資料分享給大家,家希望能幫助到您面試前的複習且找到一個好的工作,也節省大家在網上搜索資料的時間來學習。

最後

歡迎大家一起交流,整理資料不易,希望文章記得關注我點個贊喲,感謝支援!