LZ投的方向是後臺研發,職位根據每家公司不同選的Java研發/系統研發/基礎平臺研發/遊戲研發(不太挑)。因為最早七月的提前批就拿到了位元組,所以後面只投了一些大廠。
因為面試,所以造成本人經常性的刷題,也收集過很多零零碎碎的資料加上自己面試後都會做下筆記都會整理成我的學習思維筆記,今天在這分享目前國內公司Java面試常問的問題包括JVM、常用的演演算法和資料結構,redis快取,分散式,Spring,Kafka,Nginx,微服務等。
注意:需要全部完整版架構大全答案的可以檢檢視片中的獲取方式!
JAVA基礎
- JAVA中的幾種基本資料型別是什麼,各自佔用多少位元組。
- String類能被繼承嗎,為什麼。
- String,Stringbuffer,StringBuilder的區別。
- ArrayList和LinkedList有什麼區別。
- 講講類的範例化順序,比如父類別靜態資料,建構函式,欄位,子類靜態資料,建構函式,欄位,當new的時候,他們的執行順序。
- 用過哪些Map類,都有什麼區別,HashMap是執行緒安全的嗎,並行下使用的Map是什麼,他們內部原理分別是什麼,比如儲存方式,hashcode,擴容,預設容量等。
- JAVA8的ConcurrentHashMap為什麼放棄了分段鎖,有什麼問題嗎,如果你來設計,你如何設計。
- 有沒有有順序的Map實現類,如果有,他們是怎麼保證有序的。
- 抽象類和介面的區別,類可以繼承多個類麼,介面可以繼承多個介面麼,類可以實現多個介面麼。
- 繼承和聚合的區別在哪。
- IO模型有哪些,講講你理解的nio ,他和bio,aio的區別是啥,談談reactor模型。
- 反射的原理,反射建立類範例的三種方式是什麼。
- 反射中,Class.forName和ClassLoader區別 。
- 描述動態代理的幾種實現方式,分別說出相應的優缺點。
- 動態代理與cglib實現的區別。
- 為什麼CGlib方式可以對介面實現代理。
- final的用途。
- 寫出三種單例模式實現 。
- 如何在父類別中為子類自動完成所有的hashcode和equals實現?這麼做有何優劣。
- 請結合OO設計理念,談談存取修飾符public、private、protected、default在應用設計中的作用。
- 深拷貝和淺拷貝區別。
- 陣列和連結串列資料結構描述,各自的時間複雜度。
- error和exception的區別,CheckedException,RuntimeException的區別。
- 請列出5個執行時異常。
- 在自己的程式碼中,如果建立一個java.lang.String類,這個類是否可以被類載入器載入?為什麼。
- 說一說你對java.lang.Object物件中hashCode和equals方法的理解。在什麼場景下需
- 要重新實現這兩個方法。
- 在jdk1.5中,引入了泛型,泛型的存在是用來解決什麼問題。
- 這樣的a.hashcode() 有什麼用,與a.equals(b)有什麼關係。
- 有沒有可能2個不相等的物件有相同的hashcode。
- Java中的HashSet內部是如何工作的。
- 什麼是序列化,怎麼序列化,為什麼序列化,反序列化會遇到什麼問題,如何解決。
- java8的新特性。
JVM知識
- 什麼情況下會發生棧記憶體溢位。
- JVM的記憶體結構,Eden和Survivor比例。
- JVM記憶體為什麼要分成新生代,老年代,持久代。新生代中為什麼要分為Eden和Survivor。
- JVM中一次完整的GC流程是怎樣的,物件如何晉升到老年代,說說你知道的幾種主要的JVM參
- 數。
- 你知道哪幾種垃圾收集器,各自的優缺點,重點講下cms和G1,包括原理,流程,優缺點。
- 垃圾回收演演算法的實現原理。
- 當出現了記憶體溢位,你怎麼排錯。
- JVM記憶體模型的相關知識瞭解多少,比如重排序,記憶體屏障,happen-before,主記憶體,工作
- 記憶體等。
- 簡單說說你瞭解的類載入器,可以打破雙親委派麼,怎麼打破。
- 講講JAVA的反射機制。
- 你們線上應用的JVM引數有哪些。
- g1和cms區別,吞吐量優先和響應優先的垃圾收集器選擇。
- 怎麼打出執行緒棧資訊。
- 請解釋如下jvm引數的含義:
- -server -Xms512m -Xmx512m -Xss1024K
- -XX:PermSize=256m -XX:MaxPermSize=512m -
- XX:MaxTenuringThreshold=20XX:CMSInitiatingOccupancyFraction=80 -
- XX:+UseCMSInitiatingOccupancyOnly。
開源框架知識
- BeanFactory 和 ApplicationContext 有什麼區別
- Spring Bean 的生命週期
- 簡單講講tomcat結構,以及其類載入器流程,執行緒模型等。
- tomcat如何調優,涉及哪些引數 。
- 講講Spring載入流程。
- Spring AOP的實現原理。
- 講講Spring事務的傳播屬性。
- Spring如何管理事務的。
- Spring怎麼設定事務(具體說出一些關鍵的xml 元素)。
- 說說你對Spring的理解,非單例注入的原理?它的生命週期?迴圈注入的原理,aop的實現原
- 理,說說aop中的幾個術語,它們是怎麼相互工作的。
- Springmvc 中DispatcherServlet初始化過程。
- netty的執行緒模型,netty如何基於reactor模型上實現的。
- 為什麼選擇netty。
- 什麼是TCP粘包,拆包。解決方式是什麼。
- netty的fashwheeltimer的用法,實現原理,是否出現過呼叫不夠準時,怎麼解決。
- netty的心跳處理在弱網下怎麼辦。
- netty的通訊協定是什麼樣的。
- springmvc用到的註解,作用是什麼,原理。
- springboot啟動機制。
- 點選這裡有一套答案版的Spring試題。
微服務
- 什麼是微服務?
- 什麼是微服務熔斷?什麼是服務降級?
- 微服務的優點、缺點分別是什麼?
- 微服務哪些框架
- 你所知道的微服務技術有哪些?列舉1-2個案例?
- 前後端分離是如何做的
- SpringCloud和Dubbo 有哪些區別?
- 說說 RPC 的實現原理
- 說說 Dubbo 的實現原理
作業系統
- Linux系統下你關注過哪些核心引數,說說你知道的。
- Linux下IO模型有幾種,各自的含義是什麼。
- epoll和poll有什麼區別。
- 平時用到哪些Linux命令。
- 用一行命令檢視檔案的最後五行。
- 用一行命令輸出正在執行的java程序。
- 介紹下你理解的作業系統中執行緒切換過程。
- 程序和執行緒的區別。
- top 命令之後有哪些內容,有什麼作用。
- 線上CPU爆高,請問你如何找到問題所在。
多執行緒
- 多執行緒的幾種實現方式,什麼是執行緒安全。
- 多執行緒有什麼用?
- volatile的原理,作用,能代替鎖麼。
- 執行緒和程序的區別是什麼?
- 畫一個執行緒的生命週期狀態圖。
- 一個執行緒的生命週期有哪幾種狀態?它們之間如何流轉的?
- sleep和wait的區別。
- sleep和sleep(0)的區別。
- Lock與Synchronized的區別 。
- synchronized的原理是什麼,一般用在什麼地方(比如加在靜態方法和非靜態方法的區別,靜
- 態方法和非靜態方法同時執行的時候會有影響嗎),解釋以下名詞:重排序,自旋鎖,偏向鎖,輕
- 量級鎖,可重入鎖,公平鎖,非公平鎖,樂觀鎖,悲觀鎖。
- 用過哪些原子類,他們的原理是什麼。
- JUC下研究過哪些並行工具,講講原理。
- 用過執行緒池嗎,如果用過,請說明原理,並說說newCache和newFixed有什麼區別,構造函
- 數的各個引數的含義是什麼,比如coreSize,maxsize等。
- 執行緒池的關閉方式有幾種,各自的區別是什麼。
- 假如有一個第三方介面,有很多個執行緒去呼叫獲取資料,現在規定每秒鐘最多有10個執行緒同
- 時呼叫它,如何做到。
- spring的controller是單例還是多例,怎麼保證並行的安全。
- 用三個執行緒按順序迴圈列印abc三個字母,比如abcabcabc。
- ThreadLocal用過麼,用途是什麼,原理是什麼,用的時候要注意什麼。
- 如果讓你實現一個並行安全的連結串列,你會怎麼做。
- 有哪些無鎖資料結構,他們實現的原理是什麼。
- 講講java同步機制的wait和notify。
- CAS機制是什麼,如何解決ABA問題。
- 多執行緒如果執行緒掛住了怎麼辦。
- countdowlatch和cyclicbarrier的內部原理和用法,以及相互之間的差別(比如
- countdownlatch的await方法和是怎麼實現的)。
- 對AbstractQueuedSynchronizer瞭解多少,講講加鎖和解鎖的流程,獨佔鎖和公平所
- 加鎖有什麼不同。
- 使用synchronized修飾靜態方法和非靜態方法有什麼區別。
- 簡述ConcurrentLinkedQueue和LinkedBlockingQueue的用處和不同之處。
- 導致執行緒死鎖的原因?怎麼解除執行緒死鎖。
- 非常多個執行緒(可能是不同機器),相互之間需要等待協調,才能完成某種工作,問怎麼設計這種協調方案。
- 用過讀寫鎖嗎,原理是什麼,一般在什麼場景下用。
- 開啟多個執行緒,如果保證順序執行,有哪幾種實現方式,或者如何保證多個執行緒都執行完
- 再拿到結果。
- 延遲佇列的實現方式,delayQueue和時間輪演演算法的異同。
- 點選這裡有一套答案版的多執行緒試題。
TCP與HTTP
- http1.0和http1.1有什麼區別。
- TCP三次握手和四次揮手的流程,為什麼斷開連線要4次,如果握手只有兩次,會出現什麼。
- TIME_WAIT和CLOSE_WAIT的區別。
- 說說你知道的幾種HTTP響應碼,比如200, 302, 404。
- 當你用瀏覽器開啟一個連結(如:http://www.javastack.cn)的時候,計算機做了哪些工作步驟。
- TCP/IP如何保證可靠性,說說TCP頭的結構。
- 如何避免瀏覽器快取。
- 如何理解HTTP協定的無狀態性。
- 簡述Http請求get和post的區別以及封包格式。
- HTTP有哪些method
- 簡述HTTP請求的報文格式。
- HTTP的長連線是什麼意思。
- HTTPS的加密方式是什麼,講講整個加密解密流程。
- Http和https的三次握手有什麼區別。
- 什麼是分塊傳送。
- Session和cookie的區別。
- 點選這裡有一套答案版的試題。
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 語句該怎麼寫
- 通常一個 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 在核心處理類分別叫什麼?
- IBatis 和 MyBatis 在細節上的不同有哪些?
架構設計與分散式
- 用java自己實現一個LRU。
- 分散式叢集下如何做到唯一序列號。
- 設計一個秒殺系統,30分鐘沒付款就自動關閉交易。
- 如何使用redis和zookeeper實現分散式鎖?有什麼區別優缺點,會有什麼問題,分別適用什麼
- 場景。(延伸:如果知道redlock,講講他的演演算法實現,爭議在哪裡)
- 如果有人惡意建立非法連線,怎麼解決。
- 分散式事務的原理,優缺點,如何使用分散式事務,2pc 3pc 的區別,解決了哪些問題,還有
- 哪些問題沒解決,如何解決,你自己專案裡涉及到分散式事務是怎麼處理的。
- 什麼是一致性hash。
- 什麼是restful,講講你理解的restful。
- 如何設計一個良好的API。
- 如何設計建立和保持100w的長連線。
- 解釋什麼是MESI協定(快取一致性)。
- 說說你知道的幾種HASH演演算法,簡單的也可以。
- 什麼是paxos演演算法, 什麼是zab協定。
- 一個線上檔案系統,檔案可以被編輯,如何防止多人同時對同
- 一份檔案進行編輯更新。
- 線上系統突然變得異常緩慢,你如何查詢問題。
- 說說你平時用到的設計模式。
- Dubbo的原理,有看過原始碼麼,資料怎麼流轉的,怎麼實現叢集,負載均衡,服務註冊
- 和發現,重試轉發,快速失敗的策略是怎樣的 。
- 一次RPC請求的流程是什麼。
- 自己實現過rpc麼,原理可以簡單講講。Rpc要解決什麼問題。
- 非同步模式的用途和意義。
- 程式設計中自己都怎麼考慮一些設計原則的,比如開閉原則,以及在工作中的應用。
- 設計一個社群網站中的「私信」功能,要求高並行、可延伸等等。 畫一下架構圖。
- MVC模式,即常見的MVC框架。
- 聊下曾經參與設計的伺服器架構並畫圖,談談遇到的問題,怎麼解決的。
- 應用伺服器怎麼監控效能,各種方式的區別。
- 如何設計一套高並行支付方案,架構如何設計。
- 如何實現負載均衡,有哪些演演算法可以實現。
- Zookeeper的用途,選舉的原理是什麼。
- Zookeeper watch機制原理。
- Mybatis的底層實現原理。
- 請思考一個方案,實現分散式環境下的countDownLatch。
- 後臺系統怎麼防止請求重複提交。
- 描述一個服務從釋出到被消費的詳細過程。
- 講講你理解的服務治理。
- 如何做到介面的冪等性。
- 如何做限流策略,令牌桶和漏斗演演算法的使用場景。
- 什麼叫資料一致性,你怎麼理解資料一致性。
- 分散式服務呼叫方,不依賴服務提供方的話,怎麼處理服務方掛掉後,大量無效資源請求
- 的浪費,如果只是服務提供方吞吐不高的時候該怎麼做,如果服務掛了,那麼一會重新啟動,該怎
- 麼做到最小的資源浪費,流量半開的實現機制是什麼。
- dubbo的泛化呼叫怎麼實現的,如果是你,你會怎麼做。
- 遠端呼叫會有超時現象,如果做到優雅的控制,JDK自帶的超時機制有哪些,怎麼實現的。
演演算法
- 10億個數位裡裡面找最小的10個。
- 有1億個數位,其中有2個是重複的,快速找到它,時間和空間要最優。
- 2億個隨機生成的無序整數,找出中間大小的值。
- 給一個不知道長度的(可能很大)輸入字串,設計一種方案,將重複的字元排重。
- 遍歷二元樹。
- 有3n+1個數位,其中3n箇中是重複的,只有1個是不重複的,怎麼找出來。
- 寫一個字串(如:www.javastack.cn)反轉函數。
- 常用的排序演演算法,快排,歸併、冒泡。 快排的最優時間複雜度,最差複雜度。氣泡排序的
- 優化方案。
- 二分查詢的時間複雜度,優勢。
- 一個已經構建好的TreeSet,怎麼完成倒排序。
- 什麼是B+樹,B-樹,列出實際的使用場景。
- 一個單向連結串列,刪除倒數第N個資料。
- 200個有序的陣列,每個陣列裡面100個元素,找出top20的元素。
- 單向連結串列,查詢中間的那個元素。
資料庫知識
- 一張表裡面有ID自增主鍵,當insert了17條記錄之後,刪除了第15,16,17條記錄,再把mysql重新啟動,再insert一條記錄,這條記錄的ID是18還是15 ?
- mysql的技術特點是什麼?
- Heap表是什麼?
- mysql伺服器預設埠是什麼?
- 與Oracle相比,mysql有什麼優勢?
- 如何區分FLOAT和DOUBLE?
- 區分CHAR_LENGTH和LENGTH?
- 請簡潔描述mysql中InnoDB支援的四種事務隔離級別名稱,以及逐級之間的區別?
- 在mysql中ENUM的用法是什麼?
- 如何定義REGEXP?
- CHAR和VARCHAR的區別?
- 列的字串型別可以是什麼?
- 如何獲取當前的mysql版本?
- mysql中使用什麼儲存引擎?
- mysql驅動程式是什麼?
- TIMESTAMP在UPDATE CURRENT_TIMESTAMP資料型別上做什麼?
- 主鍵和候選鍵有什麼區別?
- 如何使用Unix shell登入mysql?
- myisamchk是用來做什麼的?
- mysql資料庫伺服器效能分析的方法命令有哪些?
- 如何控制HEAP表的最大尺寸?
- MyISAM Static和MyISAM Dynamic有什麼區別?
- federated表是什麼?
- 如果一個表有一列定義為TIMESTAMP,將發生什麼?
- 列設定為AUTO INCREMENT時,如果在表中達到最大值,會發生什麼情況?
- 怎樣才能找出最後一次插入時分配了哪個自動增量?
- 你怎麼看到為表格定義的所有索引?
- LIKE宣告中的%和_是什麼意思?
- 如何在Unix和mysql時間戳之間進行轉換?
- 列對比運運算元是什麼?
- 我們如何得到受查詢影響的行數?
- mysql查詢是否區分大小寫?
- LIKE和REGEXP操作有什麼區別?
- BLOB和TEXT有什麼區別?
- mysql_fetch_array和mysql_fetch_object的區別是什麼?
- 我們如何在mysql中執行批次處理模式?
- MyISAM表格將在哪裡儲存,並且還提供其儲存格式?
- mysql中有哪些不同的表格?
- ISAM是什麼?
- InnoDB是什麼?
- mysql如何優化DISTINCT?
- 如何輸入字元為十六進位制數位?
- 如何顯示前50行?
- 可以使用多少列建立索引?
- NOW()和CURRENT_DATE()有什麼區別?
- 什麼樣的物件可以使用CREATE語句建立?
- mysql表中允許有多少個TRIGGERS?
- 什麼是非標準字串型別?
- 什麼是通用SQL函數?
- 解釋存取控制列表
- mysql支援事務嗎?
- mysql裡記錄貨幣用什麼欄位型別好?
- mysql資料表在什麼情況下容易損壞?
- mysql有關許可權的表都有哪幾個?
- mysql中有哪幾種鎖?
訊息佇列
- 訊息佇列的使用場景。
- 訊息的重發,補充策略。
- 如何保證訊息的有序性。
- 用過哪些MQ,和其他mq比較有什麼優缺點,MQ的連線是執行緒安全的嗎,你們公司的MQ服務
- 架構怎樣的。
- MQ系統的資料如何保證不丟失。
- rabbitmq如何實現叢集高可用。
- kafka吞吐量高的原因。
- kafka 和其他訊息佇列的區別,kafka 主從同步怎麼實現。
- 利用mq怎麼實現最終一致性。
- 使用kafka有沒有遇到什麼問題,怎麼解決的。
- MQ有可能發生重複消費,如何避免,如何做到冪等。
- MQ的訊息延遲了怎麼處理,訊息可以設定過期時間麼,過期了你們一般怎麼處理。
快取
- 什麼是Redis?
- Redis相比memcached有哪些優勢?
- Redis支援哪幾種資料型別?
- Redis主要消耗什麼物理資源?
- Redis的全稱是什麼?
- Redis有哪幾種資料淘汰策略?
- Redis官方為什麼不提供Windows版本?
- 一個字串型別的值能儲存最大容量是多少?
- 為什麼Redis需要把所有資料放到記憶體中?
- Redis叢集方案應該怎麼做?都有哪些方案?
- Redis叢集方案什麼情況下會導致整個叢集不可用?
- MySQL裡有2000w資料,redis中只存20w的資料,如何保證redis中的資料都是熱點資料?
- Redis有哪些適合的場景?
- Redis支援的Java使用者端都有哪些?官方推薦用哪個?
- Redis和Redisson有什麼關係?
- Jedis與Redisson對比有什麼優缺點?
- Redis如何設定密碼及驗證密碼?
- 說說Redis雜湊槽的概念?
- Redis叢集的主從複製模型是怎樣的?
- Redis叢集會有寫操作丟失嗎?為什麼?
- Redis叢集之間是如何複製的?
- Redis叢集最大節點個數是多少?
- Redis叢集如何選擇資料庫?
- 怎麼測試Redis的連通性?
- Redis中的管道有什麼用?
- 怎麼理解Redis事務?
- Redis事務相關的命令有哪幾個?
- Redis key的過期時間和永久有效分別怎麼設定?
- Redis如何做記憶體優化?
- Redis回收程序如何工作的?
- Redis回收使用的是什麼演演算法?
- Redis如何做大量資料插入?
- 為什麼要做Redis分割區?
- 你知道有哪些Redis分割區實現方案?
- Redis分割區有什麼缺點?
- Redis持久化資料和快取怎麼做擴容?
- 分散式Redis是前期做還是後期規模上來了再做好?為什麼?
- Twemproxy是什麼?
- 支援一致性雜湊的使用者端有哪些?
- Redis與其他key-value儲存有什麼不同?
- Redis的記憶體佔用情況怎麼樣?
- 都有哪些辦法可以降低Redis的記憶體使用情況呢?
- 檢視Redis使用情況及狀態資訊用什麼命令?
- Redis的記憶體用完了會發生什麼?
- Redis是單執行緒的,如何提高多核CPU的利用率?
- 一個Redis範例最多能存放多少的keys?List、Set、Sorted Set他們最多能存放多少元素?
- Redis常見效能問題和解決方案?
- Redis提供了哪幾種持久化方式?
- 如何選擇合適的持久化方式?
- 修改設定不重新啟動Redis會實時生效嗎?
Dubbo
- Dubbo 支援哪些協定,每種協定的應用場景,優缺點?
- Dubbo 超時時間怎樣設定?Dubbo 的核心功能?
- Dubbo 有些哪些註冊中心?
- Dubbo 叢集的負載均衡有哪些策略? Dubbo 叢集提供了哪些負載均衡策略?
- Dubbo 的主要應用場景?
- Dubbo 的註冊中心叢集掛掉,釋出者和訂閱者之間還能通訊麼?
- Dubbo 使用的是什麼通訊框架?
- Dubbo 與 Spring 的關係?
- Dubbo 的叢集容錯方案有哪些?
- Dubbo 和 Spring Cloud 的關係?
- Dubbo 和 Dubbox 之間的區別?
- Dubbo 在安全機制方面是如何解決?
Nginx
- 請解釋一下什麼是 Nginx?
- 請列舉 Nginx 的一些特性。
- 請列舉 Nginx 和 Apache 之間的不同點
- 請解釋 Nginx 如何處理 HTTP 請求。
- 在 Nginx 中,如何使用未定義的伺服器名稱來阻止處理請求?
- 使用「反向代理伺服器」的優點是什麼?
- 請列舉 Nginx 伺服器的最佳用途。
- 請解釋 Nginx 伺服器上的 Master 和 Worker 程序分別是什麼?
- 請解釋你如何通過不同於 80 的埠開啟 Nginx?
- 請解釋是否有可能將 Nginx 的錯誤替換為 502 錯誤、503?
- 在 Nginx 中,解釋如何在 URL 中保留雙斜線?
- 請解釋 ngx_http_upstream_module 的作用是什麼?
- 請解釋什麼是 C10K 問題?
- 請陳述 stub_status 和 sub_filter 指令的作用是什麼?
- 解釋 Nginx 是否支援將請求壓縮到上游?
- 解釋如何在 Nginx 中獲得當前的時間?
- 用 Nginx 伺服器解釋-s 的目的是什麼?
- 解釋如何在 Nginx 伺服器上新增模組?
Tomcat
- 你怎樣給 tomcat 去調優?
- 如何加大 tomcat 連線數
- tomcat 中如何禁止列目錄下的檔案
- 怎樣加大 tomcat 的記憶體
- Tomcat 有幾種部署方式
- Tomcat 的優化經驗
- 垃圾回收策略如何調優?
- Tomcat 的預設埠是多少,怎麼修改?
- tomcat 有哪幾種 Connector 執行模式( 優化) ?
- Tomcat 有幾種部署方式?
- tomcat 容器是如何建立 servlet 類範例?用到了什麼原理?
- tomcat 如何優化?
- 記憶體調優
- 垃圾回收策略調優
- 新增 JMS 遠端監控
- 專業點的分析工具有
- 關於 Tomcat 的 的 session 數目
- 監視 Tomcat 的記憶體使用情況
- 列印類的載入情況及物件的回收情況
- Tomcat 一個請求的完整過程
- Tomcat 工作模式?
搜尋
- elasticsearch瞭解多少,說說你們公司es的叢集架構,索引資料大小,分片有多少,以及一些
- 調優手段 。elasticsearch的倒排索引是什麼。
- elasticsearch 索引資料多了怎麼辦,如何調優,部署。
- elasticsearch是如何實現master選舉的。
- 詳細描述一下Elasticsearch索引檔案的過程。
- 詳細描述一下Elasticsearch搜尋的過程。
- Elasticsearch在部署時,對Linux的設定有哪些優化方法?
- lucence內部結構是什麼。
Memcached面試題目
- Memcached服務在企業叢集架構中應用場景?
- Memcached服務在不同企業業務應用場景中的工作流程?
- Memcached服務分散式叢集如何實現?
- Memcached服務特點及工作原理是什麼?
- Memcached記憶體管理機制原理?
- Memcached的刪除原理與刪除機制?
- Memcached伺服器端與使用者端的安裝部署與使用測試?
- 如何獲取MEMCACHED服務的狀態資訊,例如:命中率?
- memcached能保證資料儲存的原子性嗎?
- 某人在set儲存memecache資料時候,將 $expire 設定為100天,發現設定的key總是獲取不到值?
- memcache的addServer的故障轉移機制?
- memcached最大的優勢是什麼?
- memcached和MySQL的query cache相比,有什麼優缺點?
- memcached和伺服器的local cache(比如PHP的APC、mmap檔案等)相比,有什麼優缺點?
- memcached的cache機制是怎樣的?
- memcached如何實現冗餘機制?
- memcached如何處理容錯的?
- 如何將memcached中item批次匯入匯出?
- 但是我確實需要把memcached中的item都dump出來,確實需要把資料load到memcached中,怎麼辦?
- memcached是如何做身份驗證的?
- 如何使用memcached的多執行緒是什麼?如何使用它們?
- memcached能接受的key的最大長度是多少?(250bytes)
- memcached對item的過期時間有什麼限制?(為什麼有30天的限制?)
- memcached最大能儲存多大的單個item?(1M byte)
- 為什麼單個item的大小被限制在1M byte之內?
- 為了讓memcached更有效地使用伺服器的記憶體,可以在各個伺服器上設定大小不等的快取空間嗎?
- 什麼是binary協定?它值得關注嗎?
- memcached是如何分配記憶體的?為什麼不用malloc/free!?究竟為什麼使用slab呢?
- 如何實現叢集中的session共用儲存?
- memcached與redis的區別,以及各自的優劣勢?
Kafka
Kafka 的設計時什麼樣的呢?
資料傳輸的事物定義有哪三種?
Kafka 判斷一個節點是否還活著有那兩個條件?
producer 是否直接將資料傳送到 broker 的 leader(主節點)?
Kafa consumer 是否可以消費指定分割區訊息?
Kafka 訊息是採用 Pull 模式,還是 Push 模式?
Kafka 儲存在硬碟上的訊息格式是什麼?
Kafka 高效檔案儲存設計特點
Kafka 與傳統訊息系統之間有三個關鍵區別
Kafka 建立 Topic 時如何將分割區放置到不同的 Broker 中
Kafka 新建的分割區會在哪個目錄下建立
partition 的資料如何儲存到硬碟
kafka 的 ack 機制
Kafka 的消費者如何消費資料
消費者負載均衡策略
資料有序
kafaka 生產資料時資料的分組策略
Linux:
- 常用命令:使用者控制、許可權控制、程序控制、系統狀態查詢之類的
- Linux 中主要有哪幾種核心鎖?
- Linux 中的使用者模式和核心模式是什麼含意?
- /etc/hosts檔案什麼做用?
- Linux目錄結構(尤其是/proc非常重要)
- linux檔案系統結構和啟動流程)
- Java伺服器端問題排查(OOM,CPU高,Load高,類衝突)
- 如何檢視Java應用的執行緒資訊
- Thread dump檔案如何分析(Runnable,鎖,程式碼棧,作業系統執行緒ID關聯)
有需要我的【複習筆記】的朋友可以