原创 面經:mysql索引
1. 數據結構 mysql 使用的是(Balance+ Tree,也就是平衡樹)B+樹,在B樹的基礎上做了優化,B+ Tree 是基於 B Tree 和葉子節點順序訪問指針進行實現,它具有 B Tree 的平衡性,並且通過順序
原创 面試:線程池常見面試問題
1.什麼是線程池? 優點有哪些? 顧名思義,由多個線程組成的池,線程池使用的是池化的思想,類似的還有連接池,資源池等. 使用線程池有以下幾個優點: 1.1 方便對線程統一管理,不會出現’野線程’,並且統一提供一些管理的方法,管理線
原创 使用註解實現AOP功能
最近做項目,需要使用註解綁定一個切面去實現一個需求,講真的本人菜鳥,可能之前就沒有寫多少切面,更不要說用註解的形式去實現了,現學現賣,希望寫點東西,隨着理解的深入可能我會修改這篇博客。閒話少說,首先是些註解的編寫: 一.註解(A
原创 分佈式CAP漫談
1.CAP 在經典的CAP理論中: C: 一致性 A: 高可用 P: 容錯性 在目前這個微服務中,註冊中心選擇中ZK和Eureka比較常見的, zookeeper在設計之初是爲了解決各個服務之間的數據(狀態)都保持一致,所以使用z
原创 GC淺談
GC對一個java開發人員來說是個比較重要的東西,雖然在我們開發的過程中我們很少主動的調用它,但是它確實是我們開發中必不可少的部分.傳說中的守護線程GC. 之前面試看過一些關於GC的面試題,感覺自己對GC的理解深入了一點,想寫一些
原创 使用MultiValueMap巧妙解決拼字符串問題
MultiValueMap可以讓一個key對應多個value,這是Spring框架提供的Map類,這裏可以很好的解決一些不好處理的字符串問題,不多說看代碼: MultiValueMap<String, String> st
原创 SpringBoot的自動加載配置的原理和過程
springboot提倡: 約定大於配置 springboot最常見的面試題: 1.springboot是如何實現自動加載配置呢? 2.如何寫一個starter呢? 帶着問題,我們以mybatis-spring-boot-star
原创 zookeeper漫談
1.zk是如何保證一致性的 一致性協議有很多種,比如Paxos,Raft,2PC,3PC等等,zk主要使用的是ZAB. Zookeeper Atomic Broadcast(Zookeeper 原子廣播協議). 它是爲分佈式協調服
原创 參數效驗@Valid
最近在看spring boot的文檔(http://docs.spring.io/spring-boot/docs/1.5.2.RELEASE/reference/htmlsingle/),裏面提到了使用@Valid 參數驗證,這
原创 初體驗redis
第一次使用redis: redis不用說了現在最火的NoSQL數據庫,昨天開源中國上發了一篇文章專門介紹datasource的排行榜,除了Oracle和mysql等傳統的關係型數據庫以外,NoSQL數據庫也有上榜,阿里的Mongo
原创 關於Comparable解決List,依據bean的某個屬性對list進行排序
之前在開發的過程中遇到調用Dao,返回一個list集合,需要對list進行排序,排序的標準假如是bean.creatTime(),在從數據庫中查詢的時候,可以再sql語句中加一個 order by creat_time , 但
原创 算法筆記
最近在閱讀關於算法書,想把算法在過一遍,畢竟自己不是科班出身,網上有人說我們java攻城獅不懂算法一樣可以寫代碼,我個人的觀點是你要想當碼農,是可以不需要懂底層算法,要是你想研究底層,看底層源碼實現,算法是必須要懂的,沒見過那個真
原创 面試題:手寫LRU緩存
題目:手寫實現一個LRU緩存,支持get() put() 思路 1.可以使用最基礎的單向鏈表處理 2.使用雙向鏈表,可以加入hash表做優化 3.最簡單的實現是使用JDK中自帶的LinkedHashMap,需要重寫removeEl
原创 面試算法篇-鏈表
1.如何在一次遞歸後找到單鏈表的中間元素 思路 使用兩個指針,一個一次走一步,一個一次走兩步,一次走兩步的走完時,另一個剛好走到中間. public ListNode findMid(ListNode head){
原创 面試算法篇-數組
0.各種基礎排序(快排*,歸併*,選擇,希爾等) 1.給定一個 1-100 的整數數組,請找到其中缺少的數字。 思路1: 只缺少一個數,其不重複的情況下可以求和,已知1-100的和是5050,對應的數組求和sum,用5050-su