Spring相關
關於Spring的問題主要就是圍繞着Ioc和AOP,它們真是Spring的核心啊。
Spring Bean的生命週期(重要程度:★★★★★)
推薦文章:【Spring】Bean的生命週期
Spring中用到的設計模式(重要程度:★★★★★)
工廠模式:IOC容器
參考文章 :
代理模式:AOP
參考文章:AOP那點事
策略模式:在spring採取動態代理時,根據代理的類有無實現接口有JDK和CGLIB兩種代理方式,就是採用策略模式實現的單例模式:默認情況下spring中的bean只存在一個實例
講一講Spring IoC和AOP(重要程度:★★★★★)
IoC的核心是依賴反轉,將創建對象和對象之間的依賴管理交給IoC容器來做,完成對象之間的解耦。
AOP主要是利用代理模式,把許多接口都要用的又和接口本身主要的業務邏輯無關的部分抽出來,寫成一個切面,單獨維護,比如權限驗證。這樣可以使接口符合“單一職責原則”,只關注主要的業務邏輯,也提高了代碼的重用性。
AOP的應用場景(重要程度:★★★★☆)
權限,日誌,處理異常,事務等等,個人理解就是把許多接口都要用的又和接口本身主要的業務邏輯無關的部分抽出來,寫成一個切面,單獨維護,比如權限驗證。這樣可以使接口符合“單一職責原則”,只關注主要的業務邏輯,也提高了代碼的重用性。
Spring中編碼統一要如何做(重要程度:★★★☆☆)
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Mysql索引的內部結構(重要程度:★★★★☆)
B+樹,三層,真實的數據存儲在葉子節點參考鏈接:http://www.cnblogs.com/tgycoder/p/5410057.html
參考資料:
MySQL索引原理及慢查詢優化
如果一個SQL執行時間比較長怎麼辦(重要程度:★★★★☆)
可以利用pt-query-digest等工具分析慢查詢日誌,也可以用explain查看SQL的執行計劃。具體可看我的另一篇博客MySQL調優
如果一張表中有上千萬條數據應該怎麼做分頁(重要程度:★★★☆☆)
肯定不能直接limit,offset,主要就是要想辦法避免在數據量大時掃描過多的記錄。具體可看我的另一篇博客【譯】優化MySQL中的分頁
什麼樣的列適合加索引,如果一個列的值只有1和2,那麼它適合加索引麼(重要程度:★★★☆☆)
- 在where從句,group by從句,order by從句,on從句中出現的列
- 索引的字段越小越好
- 在建立聯合索引時,離散度大的列放大聯合索引的前面
只有1和2不適合建索引
文章中剩餘的 redis 、ElasticSearch算法部分,我將在我以後的博客中,做單獨的總結