【大廠面試真題350道】性能優化+微服務+併發編程+開源框架+分佈式

秋招面試已通過去有半個月了,我相信有人歡喜有人愁,大廠的面試題千奇百怪,不知道他會問到哪方面的知識點,我也是秋招大部隊裏面的一員,給你們整理出了18個大廠常常會問到200多道面試問題,涉及的知識點有,性能優化,微服務,併發編程,開源框架,分佈式,等等。java

一,性能優化專題:

1.tomcat性能調優

  • 怎麼給tomcat調優
  • 如何加大comcat鏈接數
  • 怎麼加大tomcat的內存
  • tomcat中如何禁止列目錄下的文件
  • Tomcat有幾種部署方式
  • tomcat的優化經驗

2.jvm性能優化專題:

  • Java類加載過程
  • java內存分配
  • 描述一下jvm加載class文件的原理機制
  • GC是什麼?爲何要有GC?
  • 簡述java垃圾回收機制
  • 如何判斷一個對象是否存活?(或者GC對象的斷定方法)
  • 垃圾回收的優勢和原理。並考慮2種回收機制。
  • 垃圾回收器的基本原理是什麼?垃圾回收器能夠立刻回收內存嗎?
  • 有什麼辦法主動通知虛擬機進行垃圾回收?
  • java中會存在內存泄漏嗎,請簡單描述。
  • 深拷貝和淺拷貝
  • syatem,gc()和runtime,gc()會作作什麼事情?
  • finalize方法何時被調用?析構函數(finalizatinon)的目的是什麼?
  • 如何對象的引用被置爲null,垃圾收集器是否會當即釋放對象佔用的內存?
  • 什麼是分佈式垃圾回收(DGC)?它是如何工做的?
  • 串行(serial)收集器和吞吐量(throughout)收集器的區別是什麼?
  • 在Java中,對象何時能夠被垃圾回收?
  • 簡述Java內存分配與回收策率以及minor GC和majorGC。
  • jvm的永久代中會發生垃圾回收嗎?
  • Java中垃圾收集的方法有哪些?
  • 什麼是類加載器,類加載器有哪些?

3.mysql性能優化整理:

java大廠面試指南:性能優化+微服務+併發編程+開源框架+分佈式

答案解析:


二,微服務專題:

1.spring clond:

  • 什麼是spring cloud?
  • 使用spring cloud 有什麼優點?
  • 服務註冊和發現是什麼意思?spring cloud 如何實現?
  • 負載平衡的意義什麼?
  • 什麼是Hystrix?它如何實現容錯?
  • 什麼是hystrix斷路器?他們須要它嗎?
  • 什麼是netflix feign?它的優勢是什麼?
  • 什麼是spring cloud bus?咱們須要它嗎?

2.spring boot:

  • 什麼是spring boot
  • spring boot 有哪些優勢?
  • 什麼是Java config
  • 如何從新加載spring boot 上的更改,而無需從新啓動服務器?
  • spring boot 中的監視器是什麼?
  • 如何在spring boot 中禁用Actuator端點安全性?
  • 如何在自定義端口上運行spring boot 應用程序?
  • 什麼是YAML?
  • 如何實現spring boot 應用程序的安全性?
  • 如何集成spring boot和 ActiveMQ?
  • 如何使用spring boot實現分頁和排序?
  • 什麼是swagger?你用spring boot實現了它嗎?
  • 什麼是spring profiles
  • 什麼是spring batch
  • 什麼是free marker 模板
  • 如何使用 springboot 實現異常處理?
  • 您使用了哪些starter maven 依賴項?
  • 什麼是CSRF攻擊?
  • 什麼是websockets?
  • 什麼是AOP?
  • 什麼是apache kafka?
  • 咱們如何監視全部spring boot 微服務?

3Dubbo面試整理

  • dubbo中zookeeper作註冊中心,若是註冊中心集羣都掛掉,發佈者和訂閱者之間還能通訊嗎?
  • dubbo服務負載均衡策略?
  • dubbo 在安全機制方面是如何解決的
  • dubbo鏈接註冊中心和直連的區別

答案解析:


三,併發編程:

  • synchronized用過嗎,其原理是什麼?
  • 你剛纔提到獲取對象的鎖,這個鎖究竟是什麼?如何肯定對象的鎖?
  • 什麼是可重入性,爲何說synchronized是可重入鎖?
  • jvm對Java的原生鎖作了哪些優化?
  • 爲何說synchronized是非公平鎖?
  • 什麼是鎖消除和鎖粗化?
  • 爲何說synchronized是一個悲觀鎖?樂觀鎖的實現原理又是什麼?
  • 樂觀鎖必定就是好的嗎?
  • 跟synchronized相比,可重入鎖reentrantlock其實現原理有什麼不一樣?
  • 那麼請談談AQS框架是怎麼回事兒?
  • 請儘量詳盡地對比下synchronized和reetrantlock的異同。
  • reetrantlock是如何實現可重入性的?
  • 除了reetrantlock,你還接觸過juc中哪些併發工具?
  • 請談談resdwritelock和stamppeloick
  • 如何讓Java的線程彼此同步?你瞭解過哪些同步器?請分別 介紹下。
  • cyclicbarrier和countdownlatch看起來很類似,請對下呢?
  • Java中的線程池是如何實現的?
  • 建立線程池的幾個核心構造參數?
  • 線程池中的線程是怎麼建立的?是一開始就隨着線程池的啓動 建立好的嗎?
  • 既然提到能夠經過配置不一樣參數建立出不一樣的線程池,那麼Java中默認實現好的線程池又有哪些呢,請比較他們的異同。
  • 如何在Java線程池中提交線程?
  • 什麼是Java的內存模型,Java中各個線程是怎麼彼此看到 對方的變量的?
  • 請談談volatile有什麼特色,爲何它能保證變量對全部線程的可見性?
  • 既然volatile能保證線程間的變量可見性,是否是就意味 着基於volatile 變量的運算就是併發安全的?
  • 請對比下volatile對比synchronized的異同。
  • 請談談threadlocal是怎麼解決併發安全的?
  • 不少人都說要慎用threadlocal,談談你的理解,使用threalocal須要注意什麼?

答案解析:node


四,開源框架專題

1.spring面試:

  • 什麼是spring框架?spring框架有哪些主要模塊?
  • 使用spring框架能帶來哪些好處
  • 什麼是控制反轉(IOC)?什麼是依賴注入?
  • 請解釋下spring框架中的ioc?
  • beanfactory和applicationcontext有什麼區別?
  • spring有幾種配置方式?
  • 如何用基於XML配置的方式配置spring?
  • 如何基於Java配置的方式配置spring?
  • 怎樣用註解的方式配置spring?
  • 請解釋spring bean的生命週期?
  • spring bean 的做用域之間有什麼區別?
  • 什麼是spring inner beans?
  • spring 框架中的單例beans 是線程安全的麼?
  • 請舉例說明如何在spring 中注入一個Java collection?
  • 如何向spring bean中注入一個Java.util.properties?
  • 請解釋spring bean 的自動裝置?
  • 請解釋自動裝配模式的區別?
  • 如何開啓基於註解的自動裝配?
  • 請舉報解釋@Required註解?
  • 請舉例解釋@Autowired註解?
  • 請舉例說明@Qualifier註解?
  • 構造方法注入和設值注入有什麼區別?請注意一下明顯的區別:
  • spring框架中有哪些不一樣類型的事件?
  • filesystemREsource和classpathresource有何區別?
  • sping框架中都用到了哪些涉及模式?
  • 開發中主要使用spring的技術?
  • 簡述AOP和IOC概念AOP:
  • 在spring中如何配置bean?
  • IOC容器對bean的生命週期:

2.springmvc:

  • 什麼是springmvc
  • springmvc的優勢
  • springmvc的工做原理
  • springmvc流程
  • springmvc的控制器是否是單例模式,若是是,有什麼問題,怎麼解決?
  • 若是你也用過struts.簡單介紹下springmvc和struts2的區別有哪些?
  • springmvc中的控制器的註解通常用那個,有沒有別註解能夠替代?
  • @requestmapping註解用在類上面有什麼做用?
  • 怎麼樣吧某個請求映射到特定的方法上面?
  • 若是在攔截請求中,我想攔截get方式提交的方法,怎麼配置?
  • 怎麼樣在方法裏面獲得request,或者session?
  • 我想在攔截的方法裏面獲得從前臺傳入的參數,怎麼獲得?
  • 若是前臺有不少個參數傳入,而且這些參數都是一個對象的,那麼怎麼樣快速獲得這個對象?
  • springmvc中的函數的返回值是什麼?
  • springmvc怎麼樣設定重定向和轉發的?
  • springmvc用什麼對象從後臺向前臺傳遞數據的?
  • springmvc中有個類把視圖和數據都合併的一塊兒的,叫什麼?
  • 怎麼樣吧modeimaqp裏面的數據放入session裏面/
  • springmvc怎麼和AJAX相互調用的?
  • 當一個方法向AJAX返回特殊對象,好比object,list等,須要作什麼處理?
  • springmvc裏面攔截器是怎麼寫的
  • 講下springmvc的執行流程

3.mybatis:

  • 什麼是mybatis?
  • 講下mybatis的緩存
  • mybatis是如何進行分頁的?分頁插件的原理是什麼?
  • 簡述mybatis的插件運行原理,以及如何編寫一個插件?
  • mybatis動態sql是作什麼的?,都有哪些動態sql?能簡述一下動態sql的執行原理嗎?
  • #{}和${}的區別是作什麼
  • 爲何說mybatis是半自動orm映射工具?它與全自動的區別在哪裏?
  • mybatis是否支持延遲加載?若是支持,它的實現原理是什麼?
  • mybatis與hibernate有哪些不一樣?
  • mybatis的好處是什麼?
  • 簡述mybatis的xml映射文件和mybatis內部數據結構之間的映射關係?
  • 什麼是mybatis的結構綁定,有什麼好處?
  • 接口綁定有幾種實現方式,分別是怎麼實現的?
  • 什麼狀況下用註解綁定,什麼狀況下用xml綁定?
  • mybatis實現一對一有幾種方式?具體怎麼操做的?
  • mybatis能執行一對一,一對多的關聯查詢嗎?都有哪些實現方式,以及他們之間的區別?
  • mybatis裏面的動態sql是怎麼設定的?用什麼語法?
  • mybatis是如何將sql執行結果封裝爲目標對象並返回的?都有哪些映射形式?
  • xml映射文件中,出了常見的select,insert,updae,delete標籤以外,還有哪些標籤?
  • 當實體類中的屬性名和表中的字段名不同,若是將查詢的結果封裝到指定pojo?
  • 模糊查詢like語句該怎麼寫
  • 一般查詢like語句該怎麼寫
  • 一般一個xml映射文件,都會寫一個dao接口與之對應,dao的工做原理,是否能夠重載?
  • mybatis映射文件中,若是A標籤經過include引用了B標籤的內容,請問,B標籤可否定義在A標籤的後面,仍是說必須定義在A標籤的前面?
  • mybatis的xml映射文件中,不一樣的xml映射文件,id是否能夠重複?
  • mybatis中如何執行批處理?
  • mybatis都有哪些Executor執行器?他們之間的區別是什麼?
  • mybatis中如何指定使用哪種Executor執行器?
  • mybatis執行批量插入,能返回數據庫主鍵列表嗎?
  • mybatis是否能夠映射Enum枚舉類?
  • 如何獲取自動生成的(主)鍵值?
  • 在mapper中如何傳遞多個參數?
  • resultType resultmap 的區別?
  • 使用mybatis的mapper接口調用時有哪些要求?
  • mybatis比ibatis比較大的幾個改進是什麼?
  • ibatis和mybatis在細節上的不一樣有哪些?

答案解析:


五,分佈式專題

1.分佈式限流:

zookeeper面試專題:mysql

  • zookeeper是什麼?
  • zookeerper提供了什麼?
  • zookeeper提供了什麼?
  • 四種類型的znode
  • zookeeper作了什麼?
  • zk的命名服務(文件系統)
  • zk的配置管理(文件系統,通知機制)
  • zookeeper集羣管理(文件系統,通知機制)
  • zookeeper分佈式鎖(文件系統,通知機制)
  • 獲取分佈式鎖的流程
  • zookeeper隊列管理(文件系統,通知機制)
  • zookeeper數據複製
  • zookeeper工做原理
  • zookeeper是如何保證明物的順序一致性的?
  • zookeeper下server工做狀態
  • zookeeper是如何選取主laeder的?
  • zookeeper同步流程
  • 分佈式通知和協調
  • 機器中爲何會有laeder?
  • zk字節宕機如何處理?
  • zookeeper負載均衡和nginx負載均衡區別
  • zookeeper watch 機制

nginx面試專題:nginx

  • 請解釋一下什麼是nginx?
  • 請列舉nginx的一些特性。
  • 請解釋nginx如何處理HTTP請求。
  • 在nginx中,如何使用未定義的服務器名稱來阻止處理請求?
  • 使用「反向代理服務器」的優勢是什麼?
  • 請列舉nginx服務器的最佳用途。
  • 請解釋nginx服務器上的master和woeker進程分別是什麼?
  • 請解釋你如何經過不一樣於80的端口開啓ngunx?
  • 請解釋是否有可能將nginx的錯誤替換爲502錯誤,503?
  • 在nginx中,解釋如何在URL中保留雙斜線?
  • 請解釋 ngx_http_upstream_module的做用是什麼?
  • 請解釋什麼是c10k問題?
  • 請陳述stub_status 和 sub_fifilter 指令的做用是什麼
  • 解釋nginx是否支持將請求壓縮到上游?
  • 解釋如何在nginx中得到當前的時間?
  • 用nginx服務器解釋—s的目的是什麼?
  • 解釋如何在nginx服務器添加模塊?

2.分佈式通信面試整理

RabbitMQ消息中間件面試專題
程序員

  • RabbitMQ中的broker是指什麼?cluster又是指什麼?
  • 什麼是元數據?元數據分爲哪些類型?包括哪些內容?與cluster相關的元數據有哪些?元數據是如何保存的?元數據在cluster中是如何分佈的?
  • RAMnode和disk node的區別?
  • rabbitMQ上的一個queue中存放的message是否有數量限制?
  • vhost是什麼?起什麼做用?
  • 在單node系統和多node構成的cluster系統中聲明queue,exchange,以及進行binding會有什麼不一樣?
  • 客戶端鏈接到cluster中的任意node上是否都能正常工做?
  • 若cluster中擁有某個queue的owner node 失效了,且該queue被聲明具備durable屬性,是否可以成功從其餘node上從新聲明該quede?
  • cluster中node的失效會對consumer產生什麼影響?如果在cluster中建立了mirrored queue,這時node失效會對consumer產生什麼影響?
  • 可以在地理上分開的不一樣數據中心使用rabbitMQ cluster 麼?
  • 爲何heavy RPC的使用場景下不建議採用 disk node
  • 向不存在的exchange發publish消息會發生什麼?向不存在的queue執行consume動做會發生什麼?
  • routing_key 和 binding_key的最大長度是多少
  • RabbitMQ容許發送的message最大可達多大?
  • 什麼狀況下producer不主動建立queue是安全的
  • 「dead letter」queue的用途?

kafka面試專題:web

  • kafka的設計時什麼樣的呢?
  • 數據傳輸的實物定義有哪三種
  • kafka判斷一個節點是否還活着有那兩個條件
  • producer是否直接將數據發送到 broker 的leader(主節點)?
  • Kafa consumer 是否能夠消費指定分區消息?
  • Kafka 採用的是Pull消息模式,仍是Push消息模式?
  • Kafka 存儲在硬盤上的消息格式是什麼?
  • Kafka高效文件存儲設計特色?
  • Kafka與傳統消息系統之間有三個關鍵區別
  • Kafka 建立Topic 時如何將分區放置到不一樣的Broker中
  • Kafka 新建的分區會在哪一個目錄下建立
  • partition 的數據如何保存在硬盤
  • kafka 的ack 機制
  • kafka的消費者如何消費數據
  • 消費者負載均衡策略
  • 數據有序
  • kafka生產數據時數據的分組策略

ActiveMQ消息中間件面試專題
  • 什麼是ActiveMQ?
  • ActiveMQ的服務器宕機怎麼辦?
  • 丟消息怎麼辦?
  • 持久化消息很是慢
  • 消息的不均勻消費
  • 死信隊列
  • ActiveMQ中的消息重發時間間隔和重發次數嗎?

3.分佈式數據庫面試整理

redis面試專題:
  • redis和memcached 什麼區別?爲何高併發下有時單線程的redis
  • 比多線程的memcached 效率要高?
  • redis主從複製如何實現的?redis的集羣模式如何實現?redis的key是如何尋址的?
  • 使用redis如何設計分佈式鎖?說一下實現思路?使用zk能夠嗎?如何實現?這兩種有什麼區別?
  • 知道redis的持久化嗎?底層如何實現的?有什麼優勢缺點?
  • redis過時策略都有哪些?LRU算法知道嗎?寫一下java代碼實現?
  • 緩存穿透,緩存擊穿,緩存雪崩解決方案?
  • 在選擇緩存時,何時選擇redis,何時選擇memcached?
  • 緩存和數據庫不一致怎麼辦?
  • 主從數據庫不一致如何解決?
  • redis常見的性能問題和解決方案
  • redis的數據淘汰策略有哪些
  • redis當中有哪些數據結構
  • 使用redis裏面有以一億個key,其中有10w個key是以某個固定的已知的前綴開頭,如何將他們所有找出來
  • 使用redis作過異步隊列嗎,是如何實現的?
  • redis如何實現延時隊列
  • 什麼是redis,簡述他的優缺點
  • Redis想對於memcached有什麼優點?
  • Redis支持哪幾種數據類型
  • Redis 主要消耗什麼物理資源
  • Redis的全稱是什麼
  • Redis有哪幾種數據淘汰策略
  • Redis官方爲何不提供windows版本

答案解析:
面試


給你們講題目從PDF文檔裏面打出來都用了半天,因爲問整個PDF實在過於長,解析的話我就截了幾張圖片,沒有都列舉出來。全部的解析都整理在PDF文檔裏面了。但願這份PDF文檔對你面試能有必定的幫助。須要源pdf能夠關注微信公衆號:Java程序員彙集地  獲取redis

相關文章
相關標籤/搜索