350道java面試題收集整理,包含了上百家企業(yè)近年的人才計劃!

如何就業(yè)?如何找到一份滿意的工作?如何升職加薪?這些一直是我們java程序員老生常談的問題!我們從企業(yè)的招聘需求已經(jīng)面試題來分析一下,當(dāng)下java程序員應(yīng)該選擇往那方面進(jìn)階

收集100家知名企業(yè)近年來java面試題合集總匯——上

你要的這里都有;

企業(yè)要的這里也有;

面向底層、架構(gòu),單刀直入!

這些全部是題目跟類目,每個題目都會有相對的答案,由于字?jǐn)?shù)太多所以我整理出一個文檔,文檔獲取地址,作者創(chuàng)建的java行業(yè)內(nèi)推群:569265037,加群在群文件下載

目錄展示

一、性能優(yōu)化面試專欄

1、tomcat性能優(yōu)化整理

1.1、你怎樣給tomcat調(diào)優(yōu)?
1.2、如何加大comcat連接數(shù)?
1.3、怎樣加大tomcat的內(nèi)存?
1.4、tomcat中如何禁止列目錄下的文件?
1.5、Tomcat有幾種部署方式?
1.6、Tomcat的優(yōu)化經(jīng)驗

2、JVM性能優(yōu)化整理

1.1、Java類加載過程
1.2、java內(nèi)存分配
1.3、描述一下JVM加載Class文件的原理機(jī)制?
1.4、GC 是什么? 為什么要有 GC?
1.5、簡述 Java 垃圾回收機(jī)制。
1.6、 如何判斷一個對象是否存活?(或者 GC 對象的判定方法)
1.7、垃圾回收的優(yōu)點和原理。并考慮 2 種回收機(jī)制。
1.8、垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內(nèi)存嗎?
有什么辦法主動通知虛擬機(jī)進(jìn)行垃圾回收?
1.9、Java 中會存在內(nèi)存泄漏嗎,請簡單描述。
2.0、深拷貝和淺拷貝。
2.1、System.gc() 和 Runtime.gc() 會做什么事情?
2.2、finalize() 方法什么時候被調(diào)用?析構(gòu)函數(shù) (finalization) 的 目的是什么?
2.3、如果對象的引用被置為 null,垃圾收集器是否會立即釋放對象占 用的內(nèi)存?
2.4、什么是分布式垃圾回收(DGC)?它是如何工作的?
2.5、串行(serial)收集器和吞吐量(throughput)收集器的區(qū)別 是什么?
2.6、在 Java 中,對象什么時候可以被垃圾回收?
2.7、簡述 Java 內(nèi)存分配與回收策率以及 Minor GC 和 Major GC。
2.8、JVM 的永久代中會發(fā)生垃圾回收么?
2.9、Java 中垃圾收集的方法有哪些?
3.0、什么是類加載器,類加載器有哪些?
3.1、類加載器雙親委派模型機(jī)制?

3、Mysql性能優(yōu)化整理

二、微服務(wù)架構(gòu)面試專欄

1、SpringCloud面試整理

1.1、什么是 Spring Cloud?
1.2、使用 Spring Cloud 有什么優(yōu)勢?
1.3、服務(wù)注冊和發(fā)現(xiàn)是什么意思?Spring Cloud 如何實現(xiàn)?
1.4、負(fù)載平衡的意義什么?
1.5、什么是 Hystrix?它如何實現(xiàn)容錯?
1.6、什么是 Hystrix 斷路器?我們需要它嗎?
1.7、什么是 Netflix Feign?它的優(yōu)點是什么?
1.8、什么是 Spring Cloud Bus?我們需要它嗎?

2、SpringBoot面試整理

1.1、什么是 Spring Boot?
1.2、Spring Boot 有哪些優(yōu)點?
1.3、什么是 JavaConfig?
1.4、如何重新加載 Spring Boot 上的更改,而無需重新啟動服務(wù)器?
1.5、Spring Boot 中的監(jiān)視器是什么?
1.6、如何在 Spring Boot 中禁用 Actuator 端點安全性?
1.7、如何在自定義端口上運行 Spring Boot 應(yīng)用程序?
1.8、什么是 YAML?
1.9、如何實現(xiàn) Spring Boot 應(yīng)用程序的安全性?
2.0、如何集成 Spring Boot 和 ActiveMQ?
2.1、如何使用 Spring Boot 實現(xiàn)分頁和排序?
2.2、什么是 Swagger?你用 Spring Boot 實現(xiàn)了它嗎?
2.3、什么是 Spring Profiles?
2.4、什么是 Spring Batch?
2.5、什么是 FreeMarker 模板?
2.6、如何使用 Spring Boot 實現(xiàn)異常處理?
2.7、您使用了哪些 starter maven 依賴項?
2.8、什么是 CSRF 攻擊?
2.9、什么是 WebSockets?
3.0、什么是 AOP?
3.1、什么是 Apache Kafka?
3.2、我們?nèi)绾伪O(jiān)視所有 Spring Boot 微服務(wù)?

3、Dubbo面試整理

1.1、Dubbo 中 zookeeper 做注冊中心,如果注冊中心集群都掛掉,發(fā)布者和訂閱者之間還能通信么?
1.2、dubbo 服務(wù)負(fù)載均衡策略?
1.3、 Dubbo 在安全機(jī)制方面是如何解決的
1.4、dubbo 連接注冊中心和直連的區(qū)別

三、并發(fā)編程高級面試專欄

1、Synchronized用過嗎,其原理是什么?
2、你剛才提到獲取對象的鎖,這個 “鎖 ”到底是什么?如何確定對象的鎖?
3、什么是可重入性,為什么說 Synchronized 是可重入鎖?
4、JVM 對 Java 的原生鎖做了哪些優(yōu)化?
5、為什么說 Synchronized 是非公平鎖?
6、什么是鎖消除和鎖粗化?
7、為什么說 Synchronized 是一個悲觀鎖?樂觀鎖的實現(xiàn)原理 又是什么?什么是 CAS,它有什么特性?
8、樂觀鎖一定就是好的嗎?
9、跟 Synchronized 相比,可重入鎖 ReentrantLock 其實現(xiàn) 原理有什么不同?
10、那么請談?wù)?AQS 框架是怎么回事兒?
11、請盡可能詳盡地對比下 Synchronized 和 ReentrantLock 的異同。
12、ReentrantLock 是如何實現(xiàn)可重入性的?
13、除了 ReetrantLock,你還接觸過 JUC 中的哪些并發(fā)工具?
14、請談?wù)?ReadWriteLock 和 StampedLock。
15、如何讓 Java 的線程彼此同步?你了解過哪些同步器?請分別介紹下。
16、CyclicBarrier 和 CountDownLatch 看起來很相似,請對比下呢?
17、Java 中的線程池是如何實現(xiàn)的?
18、創(chuàng)建線程池的幾個核心構(gòu)造參數(shù)?
19、線程池中的線程是怎么創(chuàng)建的?是一開始就隨著線程池的啟動 創(chuàng)建好的嗎?
20、既然提到可以通過配置不同參數(shù)創(chuàng)建出不同的線程池,那么 Java 中默認(rèn)實現(xiàn)好的線程池又有哪些呢?請比較它們的異同。
21、如何在 Java 線程池中提交線程?
22、什么是 Java 的內(nèi)存模型,Java 中各個線程是怎么彼此看到 對方的變量的?
23、請談?wù)?volatile 有什么特點,為什么它能保證變量對所有線 程的可見性?
24、既然 volatile 能夠保證線程間的變量可見性,是不是就意味 著基于 volatile 變量的運算就是并發(fā)安全的?
25、請對比下 volatile 對比 Synchronized 的異同。
26、請談?wù)?ThreadLocal 是怎么解決并發(fā)安全的?
27、很多人都說要慎用 ThreadLocal,談?wù)勀愕睦斫?,使?ThreadLocal 需要注意些什么?

四、開源框架面試題專欄

4.1、Spring面試整理

1.1、什么是 Spring 框架?Spring 框架有哪些主要模塊?
1.2、使用 Spring 框架能帶來哪些好處?
1.3、什么是控制反轉(zhuǎn)(IOC)?什么是依賴注入?
1.4、請解釋下 Spring 框架中的 IoC?
1.5、BeanFactory 和 ApplicationContext 有什么區(qū)別?
1.6、Spring 有幾種配置方式?
1.7、如何用基于 XML 配置的方式配置 Spring?
1.8、如何用基于 Java 配置的方式配置 Spring?
1.9、怎樣用注解的方式配置 Spring?
2.0、請解釋 Spring Bean 的生命周期?
2.1、Spring Bean 的作用域之間有什么區(qū)別?
2.2、什么是 Spring inner beans?
2.3、Spring 框架中的單例 Beans 是線程安全的么?
2.4、請舉例說明如何在 Spring 中注入一個 Java Collection?
2.5、如何向 Spring Bean 中注入一個 Java.util.Properties?
2.6、請解釋 Spring Bean 的自動裝配?
2.7、請解釋自動裝配模式的區(qū)別?
2.8、如何開啟基于注解的自動裝配?
2.9、請舉例解釋@Required 注解?
3.0、請舉例解釋@Autowired 注解?
3.1、請舉例說明@Qualifier 注解?
3.2、構(gòu)造方法注入和設(shè)值注入有什么區(qū)別? 請注意以下明顯的區(qū)別:
3.3、Spring 框架中有哪些不同類型的事件?
3.4、FileSystemResource 和 ClassPathResource 有何區(qū)別?
3.5、Spring 框架中都用到了哪些設(shè)計模式?
3.6、開發(fā)中主要使用 Spring 的什么技術(shù) ?
3.7、簡述 AOP 和 IOC 概念 AOP:
3.8、在 Spring 中如何配置 Bean ?
3.9、IOC 容器對 Bean 的生命周期:

4.2 SpringMVC面試整理

1.1、什么是 SpringMvc?
1.2、Spring MVC 的優(yōu)點:
1.3、SpringMVC 工作原理?
1.4、SpringMVC 流程?
1.5、SpringMvc 的控制器是不是單例模式,如果是,有什么問題,怎么解決?
1.6、如果你也用過 struts2.簡單介紹下 springMVC 和 struts2 的區(qū)別有哪些?
1.7、SpingMvc 中的控制器的注解一般用那個,有沒有別的注解可以替代?
1.8、 @RequestMapping 注解用在類上面有什么作用?
1.9、怎么樣把某個請求映射到特定的方法上面?
2.0、如果在攔截請求中,我想攔截 get 方式提交的方法,怎么配置?
2.1、怎么樣在方法里面得到 Request,或者 Session?
2.2、我想在攔截的方法里面得到從前臺傳入的參數(shù),怎么得到?
2.3、如果前臺有很多個參數(shù)傳入,并且這些參數(shù)都是一個對象的,那么怎么樣快速得到這個對象?
2.4、SpringMvc 中函數(shù)的返回值是什么?
2.5、SpringMVC 怎么樣設(shè)定重定向和轉(zhuǎn)發(fā)的?
2.6、SpringMvc 用什么對象從后臺向前臺傳遞數(shù)據(jù)的?
2.7、SpringMvc 中有個類把視圖和數(shù)據(jù)都合并的一起的,叫什么?
2.8、怎么樣把 ModelMap 里面的數(shù)據(jù)放入 Session 里面?
2.9、SpringMvc 怎么和 AJAX 相互調(diào)用的?
3.0、當(dāng)一個方法向 AJAX 返回特殊對象,譬如 Object,List 等,需要做什么處理?
3.1、SpringMvc 里面攔截器是怎么寫的
3.2、講下 SpringMvc 的執(zhí)行流程

4.3、MyBatis面試整理

1.1、什么是 MyBatis?
1.2、講下 MyBatis 的緩存
1.3、Mybatis 是如何進(jìn)行分頁的?分頁插件的原理是什么?
1.4、簡述 Mybatis 的插件運行原理,以及如何編寫一個插件?
1.5、Mybatis 動態(tài) sql 是做什么的?都有哪些動態(tài) sql?能簡述一下動態(tài) sql 的執(zhí)行原理嗎?
1.6、#{}和${}的區(qū)別是什么?
1.7、為什么說 Mybatis 是半自動 ORM 映射工具?它與全自動的區(qū)別在哪里?
1.8、Mybatis 是否支持延遲加載?如果支持,它的實現(xiàn)原理是什么?
1.9、MyBatis 與 Hibernate 有哪些不同?
2.0、MyBatis 的好處是什么?
2.1、簡述 Mybatis 的 Xml 映射文件和 Mybatis 內(nèi)部數(shù)據(jù)結(jié)構(gòu)之間的映射關(guān)系?
2.2、什么是 MyBatis 的接口綁定,有什么好處?
2.3、接口綁定有幾種實現(xiàn)方式,分別是怎么實現(xiàn)的?
2.4、什么情況下用注解綁定,什么情況下用 xml 綁定?
2.5、MyBatis 實現(xiàn)一對一有幾種方式?具體怎么操作的?
2.6、Mybatis 能執(zhí)行一對一、一對多的關(guān)聯(lián)查詢嗎?都有哪些實現(xiàn)方式,以及它們之間的區(qū)別?
2.7、MyBatis 里面的動態(tài) Sql 是怎么設(shè)定的?用什么語法?
2.8、Mybatis 是如何將 sql 執(zhí)行結(jié)果封裝為目標(biāo)對象并返回的?都有哪些映射形式?
2.9、Xml 映射文件中,除了常見的 select|insert|updae|delete 標(biāo)簽之外,還有哪些標(biāo)簽?
3.0、當(dāng)實體類中的屬性名和表中的字段名不一樣,如果將查詢的結(jié)果封裝到指定 pojo?
3.1、模糊查詢 like 語句該怎么寫
3.2、通常一個 Xml 映射文件,都會寫一個 Dao 接口與之對應(yīng), Dao 的工作原理,是否可以重載?
3.3、Mybatis 映射文件中,如果 A 標(biāo)簽通過 include 引用了 B 標(biāo)簽的內(nèi)容,請問,B 標(biāo)簽?zāi)?否定義在 A 標(biāo)簽的后面,還是說必須定義在 A 標(biāo)簽的前面?
3.4、Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件,id 是否可以重復(fù)?
3.5、Mybatis 中如何執(zhí)行批處理?
3.6、Mybatis 都有哪些 Executor 執(zhí)行器?它們之間的區(qū)別是什么?
3.7、Mybatis 中如何指定使用哪一種 Executor 執(zhí)行器?
3.8、Mybatis 執(zhí)行批量插入,能返回數(shù)據(jù)庫主鍵列表嗎?
3.9、Mybatis 是否可以映射 Enum 枚舉類?
4.0、如何獲取自動生成的(主)鍵值?
4.1、在 mapper 中如何傳遞多個參數(shù)?
4.2、resultType resultMap 的區(qū)別?
4.3、使用 MyBatis 的 mapper 接口調(diào)用時有哪些要求?
4.4、Mybatis 比 IBatis 比較大的幾個改進(jìn)是什么?
4.5、IBatis 和 MyBatis 在核心處理類分別叫什么?
4.6、IBatis 和 MyBatis 在細(xì)節(jié)上的不同有哪些?

五、分布式面試專欄

5.1、分布式限流面試整理

5.1.1 ZooKeeper專題

1.1.ZooKeeper 是什么?
1.2.ZooKeeper 提供了什么?
1.3.Zookeeper 文件系統(tǒng)
1.4.四種類型的 znode
1.5.Zookeeper 通知機(jī)制
1.6.Zookeeper 做了什么?
1.7.zk 的命名服務(wù)(文件系統(tǒng))
1.8.zk 的配置管理(文件系統(tǒng)、通知機(jī)制)
1.9.Zookeeper 集群管理(文件系統(tǒng)、通知機(jī)制)
2.0.Zookeeper 分布式鎖(文件系統(tǒng)、通知 機(jī)制)
2.1.獲取分布式鎖的流程
2.2.Zookeeper 隊列管理(文件系統(tǒng)、通知機(jī)制)
2.3.Zookeeper 數(shù)據(jù)復(fù)制
2.4.Zookeeper 工作原理
2.5.zookeeper 是如何保證事務(wù)的順序一致性的?
2.6.Zookeeper 下 Server 工作狀態(tài)
2.7.zookeeper 是如何選取主 leader 的?
2.8.Zookeeper 同步流程
2.9.分布式通知和協(xié)調(diào)
3.0.機(jī)器中為什么會有 leader?
3.1.zk 節(jié)點宕機(jī)如何處理?
3.2.zookeeper 負(fù)載均衡和 nginx 負(fù)載均衡區(qū)別
3.3.zookeeper watch 機(jī)制

5.1.1 Nginx面試專題

1.1、請解釋一下什么是 Nginx?
1.2、請列舉 Nginx 的一些特性。
1.3、請解釋 Nginx 如何處理 HTTP 請求
1.4、在 Nginx 中,如何使用未定義的服務(wù)器名稱來阻止處理請求?
1.5、 使用“反向代理服務(wù)器”的優(yōu)點是什么?
1.6、請列舉 Nginx 服務(wù)器的最佳用途。
1.7、請解釋 Nginx 服務(wù)器上的 Master 和 Worker 進(jìn)程分別是什么?
1.8、請解釋你如何通過不同于 80 的端口開啟 Nginx?
1.9、請解釋是否有可能將 Nginx 的錯誤替換為 502 錯誤、503?
2.0、在 Nginx 中,解釋如何在 URL 中保留雙斜線?
2.1、請解釋 ngx_http_upstream_module 的作用是什么?
2.2、請解釋什么是 C10K 問題?
2.3、請陳述 stub_status 和 sub_filter 指令的作用是什么?
2.4、解釋 Nginx 是否支持將請求壓縮到上游?
2.5、解釋如何在 Nginx 中獲得當(dāng)前的時間?

5.2、分布式通訊面試整理

5.2.1 RabbitMQ消息中間件面試專題

1.1、RabbitMQ 中的 broker 是指什么?cluster 又是指什么?
1.2、什么是元數(shù)據(jù)?元數(shù)據(jù)分為哪些類型?包括哪些內(nèi)容?與 cluster 相關(guān)的元數(shù)據(jù) 有哪些?元數(shù)據(jù)是如何保存的?元數(shù)據(jù)在 cluster 中是如何分布的?
1.3、RAM node 和 disk node 的區(qū)別?
1.4、RabbitMQ 上的一個 queue 中存放的 message 是否有數(shù)量限制?
1.5、vhost 是什么?起什么作用?
1.6、在單 node 系統(tǒng)和多 node 構(gòu)成的 cluster 系統(tǒng)中聲明 queue、exchange ,以及進(jìn)行 binding 會有什么不同?
1.7、客戶端連接到 cluster 中的任意 node 上是否都能正常工作?
1.8、若 cluster 中擁有某個 queue 的 owner node 失效了,且該 queue 被聲明具有 durable 屬性,是否能夠成功從其他 node 上重新聲明該 queue ?
1.9、cluster 中 node 的失效會對 consumer 產(chǎn)生什么影響?若是在 cluster 中創(chuàng)建了 mirrored queue ,這時 node 失效會對 consumer 產(chǎn)生什么影響?
2.0、能夠在地理上分開的不同數(shù)據(jù)中心使用 RabbitMQ cluster 么?
2.1、為什么 heavy RPC 的使用場景下不建議采用 disk node
2.2、向不存在的 exchange 發(fā) publish 消息會發(fā)生什么?向不存在的 queue 執(zhí)行consume 動作會發(fā)生什么?
2.3、routing_key 和 binding_key 的最大長度是多少?
2.4、RabbitMQ 允許發(fā)送的 message 最大可達(dá)多大?
2.5、什么情況下 producer 不主動創(chuàng)建 queue 是安全的?
2.6、“dead letter”queue 的用途?
2.7、什么說保證 message 被可靠持久化的條件是 queue 和 exchange 具有 durable 屬性,同時 message 具有 persistent 屬性才行?
2.8、什么情況下會出現(xiàn) blackholed 問題?
2.9、如何防止出現(xiàn) blackholed 問題?
3.0、Consumer Cancellation Notification 機(jī)制用于什么場景?
3.1、Basic.Reject 的用法是什么?
3.2、為什么不應(yīng)該對所有的 message 都使用持久化機(jī)制?

5.2.2 Kafka面試專題

1.1、Kafka 的設(shè)計時什么樣的呢?
1.2、數(shù)據(jù)傳輸?shù)氖挛锒x有哪三種?
1.3、Kafka 判斷一個節(jié)點是否還活著有那兩個條件?
1.4、producer 是否直接將數(shù)據(jù)發(fā)送到 broker 的 leader(主節(jié)點)?
1.5、Kafa consumer 是否可以消費指定分區(qū)消息?
1.6、Kafka 消息是采用 Pull 模式,還是 Push 模式?
1.7、Kafka 存儲在硬盤上的消息格式是什么?

  1. 8、Kafka 高效文件存儲設(shè)計特點:
    1.9、Kafka 與傳統(tǒng)消息系統(tǒng)之間有三個關(guān)鍵區(qū)別
    2.0、Kafka 創(chuàng)建 Topic 時如何將分區(qū)放置到不同的 Broker 中
    2.1、Kafka 新建的分區(qū)會在哪個目錄下創(chuàng)建
    2.2、partition 的數(shù)據(jù)如何保存到硬盤
    2.3、kafka 的 ack 機(jī)制
    2.4、Kafka 的消費者如何消費數(shù)據(jù)
    2.5、消費者負(fù)載均衡策略
    2.6、數(shù)據(jù)有序
    2.7、kafaka 生產(chǎn)數(shù)據(jù)時數(shù)據(jù)的分組策略

ActiveMQ消息中間件面試專題

1.1、 什么是 ActiveMQ?
1.2、 ActiveMQ 服務(wù)器宕機(jī)怎么辦?
1.3、 丟消息怎么辦?
1.4、 持久化消息非常慢。
1.5、 消息的不均勻消費。
1.6、 死信隊列。
1.7、 ActiveMQ 中的消息重發(fā)時間間隔和重發(fā)次數(shù)嗎?

5.3、分布式數(shù)據(jù)庫面試整理

5.3.1 redis面試專題

1.1、redis 和 memcached 什么區(qū)別?為什么高并發(fā)下有時單線程的 redis 比多線程的 memcached 效率要高?
1.2、redis 主從復(fù)制如何實現(xiàn)的?redis 的集群模式如何實現(xiàn)?redis 的 key 是如何尋址的?
1.3、使用 redis 如何設(shè)計分布式鎖?說一下實現(xiàn)思路?使用 zk 可以嗎?如何實現(xiàn)?這兩種有什么區(qū)別?
1.4、知道 redis 的持久化嗎?底層如何實現(xiàn)的?有什么優(yōu)點缺點?
1.5、redis 過期策略都有哪些?LRU 算法知道嗎?寫一下 java 代碼實現(xiàn)?
1.6、緩存穿透、緩存擊穿、緩存雪崩解決方案?
1.7、在選擇緩存時,什么時候選擇 redis,什么時候選擇 memcached
1.8、緩存與數(shù)據(jù)庫不一致怎么辦
1.9、主從數(shù)據(jù)庫不一致如何解決
2.0、Redis 常見的性能問題和解決方案
2.1、Redis 的數(shù)據(jù)淘汰策略有哪些
2.2、Redis 當(dāng)中有哪些數(shù)據(jù)結(jié)構(gòu)
2.3、假如 Redis 里面有 1 億個 key,其中有 10w 個 key 是以某個固定的已知的前綴開頭的,如果將它們?nèi)空页鰜?
2.4、使用 Redis 做過異步隊列嗎,是如何實現(xiàn)的
2.5、Redis 如何實現(xiàn)延時隊列
2.6、什么是 Redis?簡述它的優(yōu)缺點?
2.7、Redis 相比 memcached 有哪些優(yōu)勢?
2.8、Redis 支持哪幾種數(shù)據(jù)類型?
2.9、Redis 主要消耗什么物理資源?
3.0、Redis 的全稱是什么?
3.1、Redis 有哪幾種數(shù)據(jù)淘汰策略?
3.2、Redis 官方為什么不提供 Windows 版本?
3.3、一個字符串類型的值能存儲最大容量是多少?
3.4、為什么 Redis 需要把所有數(shù)據(jù)放到內(nèi)存中?
3.5、Redis 集群方案應(yīng)該怎么做?都有哪些方案?
3.6、Redis 集群方案什么情況下會導(dǎo)致整個集群不可用?
3.7、MySQL 里有 2000w 數(shù)據(jù),redis 中只存 20w 的數(shù)據(jù),如何保證 redis 中的數(shù)據(jù)都是熱點數(shù)據(jù)?
3.8、Redis 有哪些適合的場景?
3.9、Redis 支持的 Java 客戶端都有哪些?官方推薦用哪個?
4.0、Redis 和 Redisson 有什么關(guān)系?
4.1、Jedis 與 Redisson 對比有什么優(yōu)缺點?
4.2、Redis 如何設(shè)置密碼及驗證密碼?
4.3、說說 Redis 哈希槽的概念?
4.4、Redis 集群的主從復(fù)制模型是怎樣的?
4.5、Redis 集群會有寫操作丟失嗎?為什么?
4.6、Redis 集群之間是如何復(fù)制的?
4.7、Redis 集群最大節(jié)點個數(shù)是多少?
4.8、Redis 集群如何選擇數(shù)據(jù)庫?
4.9、怎么測試 Redis 的連通性?
5.0、Redis 中的管道有什么用?
5.1、怎么理解 Redis 事務(wù)?
5.2、Redis 事務(wù)相關(guān)的命令有哪幾個?
5.3、Redis key的過期時間和永久有效分別怎么設(shè)置?
5.4、Redis 如何做內(nèi)存優(yōu)化?
5.5、Redis 回收進(jìn)程如何工作的?

5.3.2 MongoDB面試專題

1.1、 你說的 NoSQL 數(shù)據(jù)庫是什么意思?NoSQL 與 RDBMS 直接有什么區(qū)別?為什么要使用和不使用 NoSQL 數(shù)據(jù)庫?說一說 NoSQL 數(shù)據(jù)庫的幾個優(yōu)點?
1.2、 NoSQL 數(shù)據(jù)庫有哪些類型?
1.3、 MySQL 與 MongoDB 之間最基本的差別是什么?
1.4、 你怎么比較 MongoDB、CouchDB 及 CouchBase?
1.5、 MongoDB 成為最好 NoSQL 數(shù)據(jù)庫的原因是什么?
1.6、 32 位系統(tǒng)上有什么細(xì)微差別?
1.7、 journal 回放在條目(entry)不完整時(比如恰巧有一個中途故障了)會遇到問題嗎?
1.8、 分析器在 MongoDB 中的作用是什么?
1.9、 名字空間(namespace)是什么?
2.0、 如果用戶移除對象的屬性,該屬性是否從存儲層中刪除?
2.1、 能否使用日志特征進(jìn)行安全備份?
2.2、 允許空值 null 嗎?
2.3、 更新操作立刻 fsync 到磁盤?
2.4、 如何執(zhí)行事務(wù)/加鎖?
2.5、 為什么我的數(shù)據(jù)文件如此龐大?
2.6、 啟用備份故障恢復(fù)需要多久?
2.7、 什么是 master 或 primary?
2.8、 什么是 secondary 或 slave?
2.9、 我必須調(diào)用 getLastError 來確保寫操作生效了么?
3.0、 我應(yīng)該啟動一個集群分片(sharded)還是一個非集群分片的 MongoDB 環(huán)境?
3.1、 分片(sharding)和復(fù)制(replication)是怎樣工作的?
3.2、 數(shù)據(jù)在什么時候才會擴(kuò)展到多個分片(shard)里?
3.3、 當(dāng)我試圖更新一個正在被遷移的塊(chunk)上的文檔時會發(fā)生什么?
3.4、 如果在一個分片(shard)停止或者很慢的時候,我發(fā)起一個查詢會怎樣?
3.5、 我可以把 moveChunk 目錄里的舊文件刪除嗎?
3.6、 我怎么查看 Mongo 正在使用的鏈接?
3.7、 如果塊移動操作(moveChunk)失敗了,我需要手動清除部分轉(zhuǎn)移的文檔嗎?
3.8、 如果我在使用復(fù)制技術(shù)(replication),可以一部分使用日志(journaling)而其他部分則不使用嗎?
3.9.當(dāng)更新一個正在被遷移的塊(Chunk)上的文檔時會發(fā)生什么?
4.0.MongoDB 在 A:{B,C}上建立索引,查詢 A:{B,C}和 A:{C,B}都會使用索引嗎?
4.1.如果一個分片(Shard)停止或很慢的時候,發(fā)起一個查詢會怎樣?
4.2. MongoDB 支持存儲過程嗎?如果支持的話,怎么用?
4.3.如何理解 MongoDB 中的 GridFS 機(jī)制,MongoDB 為何使用 GridFS 來存儲文件?

5.3.3 memcached面試專題

1.1、memcached是怎么工作的?
1.2、memcached 最大的優(yōu)勢是什么?
1.3、memcached 和 MySQL 的query cache 相比有什么優(yōu)缺點?
1.4、memcached 和服務(wù)器的 local cache (比如 PHP 的 APC、mmap 文件等)相比,有什么優(yōu)缺點?
1.5、memcached 的 cache 機(jī)制是怎樣的?
1.6、memcached 如何實現(xiàn)冗余機(jī)制?
1.7、memcached 如何處理容錯的?
1.8、如何將 memcached 中 item 批量導(dǎo)入導(dǎo)出?
1.9、我需要把 memcached 中的 item 批量導(dǎo)出導(dǎo)入,怎么辦?
2.0、memcached 是如何做身份驗證的?
2.1、memcached 的多線程是什么?如何使用它們?
2.2、memcached 能接受的 key 的最大長度是多少?
2.3、memcached 對 item 的過期時間有什么限制?
2.4、memcached 最大能存儲多大的單個 item?


image.png

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容