阿里Java二面:面試官問我如何理解Spring?我哭了

不少人在面試的時候,可能都會被問到這些問題:是否看過開源框架的源碼?談談你看過源碼以後的心得?其實咱們經常使用的Spring、MyBaits這樣的框架能夠說是JAVA裏面最經典的教科書,從中你能學習到不少寫代碼的經驗技巧,而去悟開源框架中蘊含的優雅架構設計之道這纔是最重要的。今天經過我整理的Spring筆記.xmind的重要的知識點來說講Spring所需掌握的知識點和麪試常問的一些問題!
php

基礎概念java

Spring的優勢
Spring的缺點

SpringAOP面試

AOP 的內部原理其實就是動態代理和反射了。主要涉及到的反射類:
架構

動態代理相關原理的話,你須要瞭解什麼是代理模式、靜態代理的不足、動態代理的實現原理。Spring 中實現動態代理有兩種方式可選,這兩種動態代理的實現方式的一個對比也是面試中常問的。併發

JDK 動態代理框架

必須實現 InvocationHandler 接口,而後經過 Proxy.newProxyInstance(ClassLoader分佈式

loader, Class<?> interfaces, InvocationHandler h) 得到動態代理對象。函數

CGLIB 動態代理高併發

使用 CGLIB 動態代理,被代理類不須要強制實現接口。CGLIB 不能對聲明爲 final學習

的方法進行代理,由於 CGLIB 原理是動態生成被代理類的子類。

OK,AOP 講了。其實講到這裏,可能會有一個延伸的面試問題。咱們知道,Spring

事 物 也 是 通 過 AOP 來 實 現 的 , 我 們 使 用 的 時 候 一 般 就 是 在 方 法 上 加

@Tranactional 註解,那麼你有沒有遇到過事物不生效的狀況呢?這是爲何?這

個問題咱們在後面的面試題中會講。

靜態代理
JDK動態代理和cglib的對比

SpringIOC

依賴注入
容器的初始化過程
bean知識
大體流程

IoC 內部核心原理就是反射技術,固然這裏面還涉及到 Bean 對象的初始化構建等步驟,這個在後面的生命週期中講,這裏咱們須要瞭解 Java 中反射是如何作的就好。這裏主要說明下主要的相關類和可能面試問題轉向,具體的 API 實現須要本身去看。

還有其餘的類不一一列舉出來,都在 java.lang.reflect 包下。說到這個模塊的時候,那麼面試官可能會考察相關的知識,主要是考察你是否真的有去了解過反射的使用。

舉兩個例子:

利用反射獲取實例的私有屬性值怎麼作?

這裏其實就是裏面的重要考察點就是反射對私有屬性的處理。

/**

  • 經過反射獲取私有的成員變量.

*/
private Object getPrivateValue(Person person, String fieldName) {
try {
Field field = person.getClass.getDeclaredField(fieldName);
// 主要就是這裏,須要將屬性的 accessible 設置爲 true
field.setAccessible(true);return field.get(person);
} catch (Exception e) {
e.printStackTrace;
}
return null;
}

如何經過反射構建對象實例?

//使用默認構造函數(無參)建立的話:
Class.newInstance
//構造函數帶參的話:
Constroctor constroctor = clazz.getConstructor(String.class,Integer.class);
Object obj = constroctor.newInstance("name", 18);

Spring事務管理

基本概念
事務控制
事務屬性
Spring事務管理接口
事務管理通常在Service層

SpringMVC

執行流程
註解
servlet生命週期

對應導圖我有本身平時整理出來的Spring學習筆記精華文檔,在這拿出來免費分享給有須要的朋友,須要獲取的朋友 加羣:739-289-671 獲取文檔免費領取方式!

對於開發同窗來講,Spring 框架熟悉又陌生。 熟悉:開發過程當中無時無刻不在使用 Spring 的知識點;陌生:對於基本理論知識疏於整理與記憶。致使不少同窗面試時對於 Spring 相關的題目知其答案,但表達不夠完整準確。下面分享互聯網公司Java面試高頻常問的100道題及解析!

1、基本概念面試題集( Spring 相關概念梳理)

注:爲了避免影響閱讀,我已經把解析整理成pdf免費分享出來,有須要的朋友幫忙轉發一下而後加羣:739-289-671 獲取文檔免費領取方式!

2、應用場景面試題集(各知識點不一樣使用場景選型)

3、深度度知識面試題集(底層實現原理詳解)

注:爲了避免影響閱讀,我已經把解析整理成pdf免費分享出來,有須要的朋友幫忙轉發一下而後加羣:739-289-671 獲取文檔免費領取方式!

4、拓展內容面試題集(Spring Boot 相關題集)

同時還分享更多精選整理的學習資料,包含(Dubbo、Redis、Netty、zookeeper、Spring cloud、分佈式、高併發等架構資料和完整的Java架構學習進階導圖!)

資料免費領取方式:加羣:739-289-671 便可獲取免費領取方式!

架構學習視頻

相關文章
相關標籤/搜索