2020年阿里Java面試必問:JVM與性能優化+Redis+設計模式+分佈式

前言

一年之計在於春 金三銀四已經要到來,2020的新的開始,做爲一個開發人員,你是否面上了本身理想的公司,薪資達到心中理想的高度?java

面試:若是不許備充分的面試,徹底是浪費時間,更是對本身的不負責。程序員

今天給你們分享下我整理的Java架構面試專題及答案,其中大部分都是大企業面試常問的面試題,能夠對照這查漏補缺,固然了,這裏所列的確定不可能覆蓋所有方式,不過也但願能對即將找工做的朋友起到一些幫助!web


2020年阿里Java面試必問:JVM與性能優化+Redis+設計模式+分佈式


Java面試的重點:

數據結構與算法,JVM內存結構、垃圾回收器、回收算法、GC、併發編程相關(多線程、線程池等)、NIO/BIO、性能優化、設計模式、Spring框架:分佈式相關:Redis緩存、一致Hash算法、分佈式存儲、負載均衡等,微服務以及Docker容器等。在這因爲文字不少,我總結了java面試所涉及到的常問範圍及常問面試題免費分享給你們,文末有領取!面試

部分面試常問的面試專題

1、JVM與性能優化redis

  • 描述一下 JVM 加載 Class 文件的原理機制?算法

  • 什麼是類加載器?數據庫

  • 類加載器有哪些?編程

  • 什麼是tomcat類加載機制?設計模式

  • 類加載器雙親委派模型機制?緩存

  • Java 內存分配?

  • Java 堆的結構是什麼樣子的?

  • 簡述各個版本內存區域的變化?

  • 說說各個區域的做用?

  • Java 中會存在內存泄漏嗎,簡述一下?

  • Java 類加載過程?

  • 什麼是GC? 爲何要有 GC?

  • 簡述一下Java 垃圾回收機制?

  • 如何判斷一個對象是否存活?

  • 垃圾回收的優勢和原理,並考慮 2 種回收機制?基本原理是什麼?

  • 深拷貝和淺拷貝?

  • 什麼是分佈式垃圾回收(DGC)?它是如何工做的?

  • 在 Java 中,對象何時能夠被垃圾回收?

  • 簡述Minor GC 和 Major GC?

  • Java 中垃圾收集的方法有哪些?

  • 講講你理解的性能評價及測試指標?

  • 經常使用的性能優化方式有哪些?

  • 說說分佈式緩存和一致性哈希?

  • 什麼是GC調優?

2、Redis

  • redis數據結構有哪些?

  • Redis緩存穿透,緩存雪崩?

  • 如何使用Redis來實現分佈式鎖?

  • Redis的併發競爭問題如何解決?

  • Redis持久化的幾種方式,優缺點是什麼,怎麼實現的?

  • Redis的緩存失效策略?

  • Redis集羣,高可用,原理?

  • Redis緩存分片?

  • Redis的數據淘汰策略?

  • redis隊列應用場景?

  • 分佈式使用場景(儲存session)?

3、網絡編程

  • TCP創建鏈接和斷開鏈接的過程?

  • HTTP協議的交互流程• HTTP和HTTPS的差別,SSL的交互流程?

  • TCP的滑動窗口協議有什麼用?

  • HTTP協議都有哪些方法?

  • Socket交互的基本流程?

  • 講講tcp協議(建連過程,慢啓動,滑動窗口,七層模型)?

  • webservice協議(wsdl/soap格式,與restt辦議的區別)?

  • 說說Netty線程模型,什麼是零拷貝?

  • TCP三次握手、四次揮手?

  • DNS解析過程?

  • TCP如何保證數據的可靠傳輸的?

4、設計模式與重構

  • 說說幾個常見的設計模式(23種設計模式)?

  • 設計一個工廠的包的時候會遵循哪些原則?

  • 列舉一個使用了 Visitor/ Decorator模式的開源項目/庫?

  • 如何實現一個單例?

  • 代理模式(動態代理)?

  • 單例模式(懶漢模式,惡漢模式,併發初始化如何解決, volatile與lock的使用)?

  • JDK源碼裏面都有些什麼讓你印象深入的設計模式使用,舉例看看?

5、分佈式

  • 什麼是CAP定理?

  • 說說CAP理論和BASE理論?

  • 什麼是最終一致性?最終一致性實現方式?

  • 什麼是一致性Hash?

  • 講講分佈式事務?

  • 如何實現分佈式鎖?

  • 如何實現分佈式 Session?

  • 如何保證消息的一致性?

  • 負載均衡的理解?

  • 正向代理和反向代理?

  • CDN實現原理?

  • 怎麼提高系統的QPS和吞吐?

  • Dubbo的底層實現原理和機制?

  • 描述一個服務從發佈到被消費的詳細過程?

  • 分佈式系統怎麼作服務治理?

  • 消息中間件如何解決消息丟失問題?

  • Dubbo的服務請求失敗怎麼處理?

  • 對分佈式事務的理解?

  • 如何實現負載均衡,有哪些算法能夠實現?

  • Zookeeper的用途,選舉的原理是什麼?

  • 講講數據的垂直拆分水平拆分?

  • zookeeper原理和適用場景?

  • zookeeper watch機制?

  • redis/zk節點宕機如何處理?

  • 分佈式集羣下如何作到惟一序列號?

  • 用過哪些MQ,怎麼用的,和其餘mq比較有什麼優缺點,MQ的鏈接是線程安全的嗎?

  • MQ系統的數據如何保證不丟失?

  • 列舉出能想到的數據庫分庫分表策略?

  • 數據結構與算法:最多見的各類排序,最好能手寫

  • Java高級:JVM內存結構、垃圾回收器、回收算法、GC、併發編程相關(多線程、線程池等)、NIO/BIO、各類集合類的比較優劣勢(底層數據結構也要掌握,特別是擴容等)等。

  • 性能優化、設計模式、UML的掌握

  • Spring框架:重點掌握(BAT每次必問)

  • 分佈式相關:Redis緩存、一致Hash算法、分佈式存儲、負載均衡等。

  • 微服務以及Docker容器等

最後

針對於上面的面試題我總結出了互聯網公司java程序員面試涉及到的絕大部分面試題及答案作成了文檔和架構視頻資料免費分享給你們(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分佈式、高併發等架構技術資料),但願能幫助到您面試前的複習且找到一個好的工做,也節省你們在網上搜索資料的時間來學習。

領取方式:關注個人供種號 Java周某人 便可領取

2020年阿里Java面試必問:JVM與性能優化+Redis+設計模式+分佈式

相關文章
相關標籤/搜索