2019百度阿里Java面試題(基礎+框架+數據庫+分佈式+JVM+多線程)

前言

很多朋友對面試不夠了解,不知道如何準備,對面試環節的設置以及目的不夠了解,因此成功率不高。通常情況下校招生面試的成功率低於1%,而社招的面試成功率也低於5%,所以對於候選人一定要知道設立面試的初衷以及每個環節的意義,有的放矢...

v2-627aa38e467431e36038f2d7c22a8c37_b.png

通過現場分析互聯網的JD,讓面試者掌握分析公司對技術的要求和定位,進而知道自己是否適合該崗位以及應該如何準備。想提高面試成功率一定要了解公司的業務,去分析公司對應業務的站點了解他們使用的技術棧,進而去準備相關的知識,最後一小節關於自我介紹,大多數面試失敗都是簡歷和自我介紹導致的,只是大多數人並不自知。.

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

v2-5bb8b727e8a9be9bbca75b6fdca33415_b.png

基礎與框架

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如何管理事務的

v2-65af93a213081d9775c7e0a4deeca360_b.jpg


v2-785a47280e12c16a7e8a112fa7749b59_b.jpg

多線程

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.如果讓你實現一個併發安全的鏈表,你會怎麼做

v2-22fedab6ed8b3636e8db5f79dea0858c_b.jpg

JVM相關

1.jvm中一次完整的GC流程(從ygc到fgc)是怎樣的,重點講講對象如何晉升到老年代,幾種主要的jvm參數等

2.你知道哪幾種垃圾收集器,各自的優缺點,重點講下cms

3.當出現了內存溢出,你怎麼排錯

4.JVM內存模型的相關知識瞭解多少

5.簡單說說你瞭解的類加載器

6.JAVA的反射機制

v2-8146c569aaafd39ba2b88750b37f6422_b.jpg

網絡

1.http1.0和http1.1有什麼區別

2.TCP三次握手和四次揮手的流程,爲什麼斷開連接要4次,如果握手只有兩次,會出現什麼

3.TIME_WAIT和CLOSE_WAIT的區別

4.說說你知道的幾種HTTP響應碼

5.當你用瀏覽器打開一個鏈接的時候,計算機做了哪些工作步驟

6.Linux下IO模型有幾種,各自的含義是什麼

7.TCP/IP如何保證可靠性,數據包有哪些數據組成

v2-8c00b32072e1d36bc04c075ab7797268_b.jpg

架構設計與分佈式

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.一個在線文檔系統,文檔可以被編輯,如何防止多人同時對同一份文檔進行編輯更新

v2-a9bf332a2de654ba5e1aafb237bf2400_b.jpg

算法

1.   10億個數字裏裏面找最小的10個

2.有1億個數字,其中有2個是重複的,快速找到它,時間和空間要最優

3.     2億個隨機生成的無序整數,找出中間大小的值

4.遍歷二叉樹

v2-14199ddb14a055ee24e46dac52dbd039_b.png

數據庫

1.數據庫隔離級別有哪些,各自的含義是什麼,MYsql默認的隔離級別是是什麼,各個存儲引擎優缺點

2.高併發下,如何做到安全的修改同一行數據,樂觀鎖和悲觀鎖是什麼,INNODB的行級鎖有哪2種,解釋其含義

3.SQL優化的一般步驟是什麼,怎麼看執行計劃,如何理解其中各個字段的含義,索引的原理?

4.數據庫會死鎖嗎,舉一個死鎖的例子,mysql怎麼解決死鎖

5.MYsql的索引實現方式

6.聚集索引和非聚集索引的區別

7.數據庫中 BTREE和B+tree區別

v2-5d7f807f9d9f761c60880b9e846ac9e8_b.jpg

我個人覺得面試也像是一場全新的征程,失敗和勝利都是平常之事。所以,勸各位不要因爲面試失敗而灰心、 喪失鬥志。也不要因爲面試通過而沾沾自喜,等待你的將是更美好的未來,繼續加油!

2019年Java面試題整理了1000多道400多頁pdf文檔,歡迎大家關注我的公種浩【程序員追風】,文章都會在裏面更新,整理的資料也會放在裏面。

v2-caaf387f43c23c88b88f74a794ac1976_b.jpg

針對於上面的面試問到的知識點我總結出了互聯網公司Java程序員面試涉及到的絕大部分面試題及答案做成了文檔和架構資料分享給大家,家希望能幫助到您面試前的複習且找到一個好的工作,也節省大家在網上搜索資料的時間來學習。

最後

歡迎大家一起交流,整理資料不易,喜歡文章記得點個贊喲,感謝支持!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章