導言
今年似乎因為疫情影響,時間過得特别快,對于需要跳槽換工作的人來,更覺得有些突然,似乎金三銀四和金九銀四還沒開始準備好,就匆匆過去。加上今年的大環境不佳,是以大部分的人在今年的招聘旺季都沒有收獲到好的結果。
篇章分為三大章節,可以根據自己所需來閱讀内容和下載下傳資料:
起始篇:梳理路線(自制思維腦圖)
進階篇:深度學習(閱讀阿裡P8大神手寫筆記)
突擊篇:面試考點(開源架構+性能優化+微服務架構+分布式)
![]()
32天高效面試突擊筆記:架構+性能優化+微服務+分布式
腦圖①:JVM和性能調優
腦圖②:并發程式設計(java并發體系)
腦圖③:Spring全家桶系列(Spring+Spring Boot+Spring Cloud+Spring MVC)
3.1 自制Spring思維腦圖
3.2 自制Spring Boot思維腦圖
3.3 自制Spring Cloud思維腦圖
3.4 自制Spring MVC思維腦圖
腦圖④:分布式架構系列
進階篇:深度學習(P8大神手寫筆記)
筆記①:Redis學習筆記
筆記②:Spring Boot核心技術筆記
筆記③:SpringMVC開發筆記
筆記④:Kafka學習筆記
筆記⑤:MySQL調優筆記(技巧篇)
篇幅有限,更多筆記内容,私信“筆記”下載下傳pdf版......
面試考點①:開源架構(Spring+SpringMVC+MyBatis)
——Spring基礎篇:
問題一:什麼是Spring?
問題二:使用Spring架構的好處是什麼?
問題三:Spring由哪些子產品組成?
問題四:核心容器(應用上下文)子產品。
問題五:BeanFactory - BeanFactory 實作舉例
問題六:XMLBeanFactory
問題七:解釋AOP子產品
問題八:解釋JDBC抽象和DAO子產品。
問題九:解釋對象/關系映射內建子產品
問題十:解釋WEB子產品。
問題十一:Spring配置檔案
問題十二:什麼是Spring IOC容器?
問題十三:IOC的優點是什麼?
問題十四:ApplicationContext通常的實作是什麼?
問題十五:Bean工廠和Application Context有什麼差別?
問題十六:一個Spring的應用看起來像什麼?
問題十七:什麼是Spring的依賴注入?
問題十八:有哪些不同類型的IOC(依賴注入)方式?
問題十九:哪種依賴注入方式你建議使用,構造器注入,還是Setter方法注入?
問題二十:什麼是Spring beans?
問題二十一:一個Spring bean定義包括什麼?
問題二十二:如何給Spring容器提供配置中繼資料?
問題二十三:你怎樣定義類的作用域?
問題二十四:解釋Spring支援的幾種bean的作用域。
問題二十五:Spring架構中的單例bean是線程安全的嗎?
問題二十六:解釋Spring架構中的bean的生命周期。
問題二十七:哪些是重要的bean生命周期方法?你能重載它們嗎?
問題二十八:什麼是Spring的内部bean?
問題二十九:在Spring中如何注入一個java集合?
問題三十:什麼是bean裝置?
問題三十一:什麼是bean的自動裝配?
問題三十二:解釋不同方式的自動裝配。
問題三十三:自動裝配有哪些局限性?
問題三十四:你可以在spring中注入一個null和一個空字元串嗎?
問題三十五:什麼是基于Java的Spring注解配置?給一些注解的例子。
問題三十六:什麼是基于注解的容器配置?
問題三十七:怎樣開啟注解裝配?
問題三十八:@Required注解;@Autowired注解;@Qualifier注解
問題三十九:在Spring架構中如何更有效地使用JDBC?
問題四十:Spring對DAO的支援
問題四十一:使用Spring通過什麼方式通路Hibernate?
問題四十二:如何通過HibernateDaoSupport将Spring和Hibernate結合起來?
問題四十三:Spring支援的事務管理類型有哪些?Spring架構的事務管理有哪些特點?你更傾向于使用哪種?
問題四十四:解釋AOP。
問題四十五:什麼是Aspect切面?
問題四十六:在Spring AOP中,關注點和橫切關注的差別是什麼?
問題四十七:什麼是引入?什麼是目标對象?什麼是代理?有幾種不同類型的自動代?
問題四十八:什麼是Spring的MVC架構?
問題四十九:什麼是Spring MVC架構的控制器?
——Spring進階篇:
問題一:什麼是Spring架構?Spring架構有哪些主要子產品?
問題二:使用Spring架構能帶來哪些好處?
問題三:什麼是控制反轉(IOC)?什麼是依賴注入?
問題四:請解釋下Spring架構中的IOC?
問題五:BeanFactory和Application Context有什麼差別?
問題六: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有何差別?
問題二十三:Spring架構中都用到了哪些設計模式?
問題二十四:談談你對Spring IOC和DI的了解,它們有什麼差別?
問題二十五:BeanFactory接口和ApplicationContext接口有什麼差別?
問題二十六:Spring配置bean執行個體化有哪些方式?
問題二十七:簡單地說一下spring的生命周期?
問題二十八:請介紹一下Spring架構中的Bean的生命周期和作用域。
問題二十九:Bean注入屬性有哪幾種方式?
問題三十:什麼是AOP?AOP的作用是什麼?
問題三十一:Spring的核心類型有哪些?各有什麼作用?
問題三十二:Spring裡面如何配置資料庫驅動?
問題三十三:Spring裡面applicationContext.xml檔案不能改成其他檔案名?
問題三十四:Spring裡面如何定義Hibernate mapping?
問題三十五:Spring如何處理線程并發問題?
——Spring MVC進階篇:
問題一:什麼是Spring MVC?說說它的優點。
問題二:說說Spring MVC的工作原理及流程。
問題三:SpringMVC 的控制器是不是單例模式,如果是,有什麼問題,怎麼解決?
問題四:如果你也用過 struts2.簡單介紹下 springMVC 和 struts2 的差別有哪些?
問題五:SpingMVC 中的控制器的注解一般用哪個,有沒有别的注解可以替代?
問題六:@RequestMapping 注解用在類上面有什麼作用?
問題七:怎麼樣把某個請求映射到特定的方法上面?
問題八:如果在攔截請求中,我想攔截 get 方式送出的方法,怎麼配置?
問題九:怎麼樣在方法裡面得到 Request,或者 Session?
問題十:我想在攔截的方法裡面得到從前台傳入的參數,怎麼得到?
問題十一:如果前台有很多個參數傳入,并且這些參數都是一個對象的,那麼怎麼樣快速得到這個對象?
問題十二:Spring MVC 中函數的傳回值是什麼?
問題十三:Spring MVC怎麼樣設定重定向和轉發的?
問題十四:Spring MVC用什麼對象從背景向前台傳遞資料的?
問題十五:Spring MVC中有個類把視圖和資料都合并的一起的叫什麼?
問題十六:怎麼樣把 ModelMap 裡面的資料放入 Session 裡面?
問題十七:SpringMVC 怎麼和 AJAX 互相調用的?
問題十八:當一個方法向 AJAX 傳回特殊對象,比如 Object,List 等,需要做什麼處理?
問題十九:SpringMVC 裡面攔截器是怎麼寫的?
問題二十:講下 SpringMVC 的執行流程。
——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 在細節上的不同有哪些?
面試考點②:性能優化(MySQL+JVM+Tomcat)
——Mysql優化篇:
問題一:資料三範式是什麼?
問題二:說一說,你有哪些資料庫優化方面的經驗?
問題三:請簡述常用的索引有哪些種類?
問題四:在MySQL資料庫中索引的工作機制是什麼?
問題五:說一說MySQL的基礎操作指令。
問題六:講一下MySQL的複制原理及流程。
問題七:MySQL支援的複制類型。
問題八:談談MySQL中myisam與innodb的差別?
問題九:說說Mysql 中varchar 與 char 的差別以及varchar(50)中50 代表的涵義?
問題十:說說MySQL 中 InnoDB 支援的四種事務隔離級别名稱,以及逐級之間的差別。
問題十一:表中有大字段 X(例如:text 類型),且字段 X 不會經常更新,以讀為主,将該字段拆成子表的好處是什麼?
問題十二:MySQL 中 InnoDB 引擎的行鎖是通過加在什麼上完成(或稱實作)的?
問題十三:MySQL 中控制記憶體配置設定的全局參數,有哪些?
問題十四:若一張表中隻有一個字段 VARCHAR(N)類型,utf8 編碼,則 N 最大值為多少(精确到數量級即可)
問題十五:[SELECT *] 和[SELECT 全部字段]的 2 種寫法有何優缺點?
問題十六:HAVNG 子句 和 WHERE 的異同點?
問題十七:MySQL 當記錄不存在時 insert,當記錄存在時 update,語句怎麼寫?
問題十八:MySQL 的 insert 和 update 的 select 語句文法
——JVM性能優化篇:
問題一:描述一下java類加載過程。
問題二:描述一下 JVM加載Class檔案的原理機制?
問題三:Java記憶體配置設定。
問題四:GC是什麼?為什麼要有GC?
問題五:簡述Java垃圾回收機制。
問題六:如何判斷一個對象是否存活?(或者GC對象的判定方法)
問題七:垃圾回收的優點和原理。并考慮2種回收機制。
問題八:垃圾回收器的基本原理是什麼?垃圾回收器可以馬上回收記憶體嗎?有什麼辦法主動通知虛拟機進行垃圾回收?
問題九:Java中會存在記憶體洩漏嗎?請簡單描述。
問題十:講講深拷貝和淺拷貝。
問題十一:System.gc()和Runtime.gc()會做什麼事情?
問題十二:finalize()方法什麼時候被調用?析構函數(finalization)的目的是什麼?
問題十三:如果對象的引用被置為null,垃圾收集器是否會立即釋放對象占用的記憶體?
問題十四:什麼是分布式垃圾回收(DGC)?它是如何工作的?
問題十五:串行(serial)收集器和吞吐量(throughput)收集器的差別是什麼?
問題十六:在Java中,對象什麼時候可以被垃圾回收?
問題十七:簡述Java記憶體配置設定與回收政策以及Minor GC和Major GC。
問題十八:JVM的永久代會發生垃圾回收嗎?
問題十九:Java中垃圾收集的方法有哪些?
問題二十:什麼是類加載器,類加載器有哪些?
問題二十一:類加載器雙親委派模型機制?
——Tomcat優化篇:
問題一:你怎樣給tomcat去調優?
問題二:如何加大tomcat連接配接數?
問題三:Tomcat中如何禁止列目錄下的檔案?
問題四:怎樣加大tomcat的記憶體?
問題五:Tomcat有幾種部署方式?
問題六:Tomcat的優化經驗。
問題七:tomcat的Valve的作用是什麼?
面試考點③:微服務架構(Dubbo+SpringBoot+SpringCloud)
——Dubbo篇:
問題一:Dubbo 支援哪些協定,說說每種協定的應用場景,優缺點?
問題二:Dubbo 逾時時間設定有幾種方式?
問題三:Dubbo 有哪些注冊中心?
問題四:Dubbo 叢集的負載均衡有哪些政策?
問題五:Duubo 是什麼?它的主要場景有哪些?其核心功能是?
問題六:Dubbo 服務注冊與發現的流程
問題七:了解Dubbo 的架構設計嗎?說一下吧
問題八:Dubbo支援哪些協定?講一講每種協定的應用場景和優缺點
問題九:為什麼需要服務治理?
問題十:Dubbo 的注冊中心叢集挂掉,釋出者和訂閱者之間還能通信麼?
問題十一:講講Dubbo與Spring的關系。
問題十二:Dubbo使用的是什麼通信架構?
問題十三:Dubbo 的叢集容錯方案有哪些?
問題十四:Dubbo 在安全機制方面是如何解決的?
問題十五:Dubbo 和 Spring Cloud的關系和差別是什麼?
問題十六:Dubbo 中 zookeeper 做注冊中心,如果注冊中心叢集都挂掉,釋出者和訂閱者之間還能通信麼?
問題十七:講一講Dubbo 連接配接注冊中心和直連的差別。
問題十八:Dubbo 通信協定
——Spring Boot篇:
問題一:講講,什麼是Spring Boot?
問題二:SpringBoot的優點有哪些?
問題三:如何重新加載Spring Boot上的更改?而無需重新啟動伺服器?
問題四:Spring Boot中的螢幕是什麼?
問題五:如何在 Spring Boot 中禁用 Actuator 端點安全性?
問題六:如何在自定義端口上運作 Spring Boot 應用程式?
問題七:什麼是 YAML?
問題八:如何實作 Spring Boot 應用程式的安全性?
問題九:如何內建 Spring Boot 和 ActiveMQ?
問題十:如何使用 Spring Boot 實作分頁和排序?
問題十一:什麼是 Swagger?你用 Spring Boot 實作了它嗎?
問題十二:什麼是 Spring Profiles?
問題十三:什麼是 Spring Batch?
問題十四:如何使用 Spring Boot 實作異常處理?
問題十五:什麼是 AOP?
問題十六:如何監視所有Spring Boot微服務?
——Spring Cloud篇:
問題一:什麼是Spring Cloud?
問題二:使用Spring Cloud有什麼優勢?
問題三:服務注冊和發現是什麼意思?Spring Cloud如何實作?
問題四:負載均衡的意義有什麼?
問題五:什麼是Hystrix?它如何實作容錯?
問題六:什麼是 Hystrix 斷路器?我們需要它嗎?
問題七:什麼是 Netflix Feign?它的優點是什麼?
問題八:什麼是 Spring Cloud Bus?我們需要它嗎?
面試考點④:分布式(MQ+Redis+Zk+Kafka+MongDB等)
問題一:什麼是RabbitMQ?為什麼要使用RabbitMQ?
問題二:如何確定消息正确地發送至RabbitMQ?如何確定消息接收方消費了消息?
問題三:如何避免消息重複投遞或重複消費?
問題四:消息基于什麼傳輸?消息如何分發?消息怎麼路由?如何確定消息不丢失?
問題五:使用RabbitMQ有什麼好處?
問題六:RabbitMQ的叢集
問題七:講講Redis的資料類型?
問題八:使用Redis有哪些好處?
問題九:Redis相比Memcached有哪些優勢?
問題十:Memcache與Redis的差別有哪些?
問題十一:Redis是單程序還是單線程的?
問題十二:—個字元串類型的智能存儲最大容量是多少?
問題十三:Redis的持久化機制是什麼?各自的優缺點?
問題十四:Redis常見的性能問題和解決方案
問題十五:redis過期鍵的删除政策?
問題十六:Redis的回收政策(淘汰政策)?
問題十七:為什麼redis需要把所有資料放到記憶體中?
問題十八:Redis的同步機制了解麼?說一下
問題十九:是否使用過Redis叢集,叢集的原理是什麼?
問題二十:Redis叢集方案什麼情況下會導緻整個叢集不可用?
問題二十一:zookeeper是如何保證事務的順序—緻性的?
問題二十二:分布式叢集中為什麼會有Master?
問題二十三:zk節點當機如何處理?
問題二十四:zookeeper負載均衡和nginx負載均衡的差別?
問題二十五:Zookeeper有哪幾種部署模式?
問題二十六:叢集最少要幾台機器,叢集規則是怎樣的?
問題二十七:叢集支援動态添加機器嗎?
問題二十八:Zookeeper對節點的watch監聽通知是永久的嗎?為什麼不是永久的?
問題二十九:Zookeeper的java用戶端都有哪些?
問題三十:生産者和消費者的指令行是什麼?consumer是推還是拉?
問題三十一:講講kafka維護消費狀态跟蹤的方法
問題三十二:Zookeeper對于Kafka的作用是什麼?
問題三十三:資料傳輸的事務定義有哪三種?
問題三十四:Kafka判斷一個節點是否還活着有那兩個條件?
問題三十五:Kafka 與傳統MQ消息系統之間有三個關鍵差別?
問題三十六:講—講kafka的ack的三種機制
問題三十七:消費者故障,出現了活鎖問題如何解決?
問題三十八:如何控制消費的位置?
問題三十九:kafka分布式(不是單機)的情況下,如何保證消息的順序消費?
問題四十:kafka的高可用機制是什麼?
問題四十一:kafka如何減少資料丢失?
問題四十二:kafka如何不消費重複資料?
總結
