原创 Solr學習—入門

百度上對Solr的介紹: Solr是一個高性能,採用Java5開發,基於Lucene的全文搜索服務器。同時對其進行了擴展,提供了比Lucene更爲豐富的查詢語言,同時實現了可配置、可擴展並對查詢性能進行了優化,並且提供了一個完善

原创 紅黑樹的刪除—10張圖學會

如果要學紅黑樹,那麼就必須知道二叉樹,畢竟紅黑樹本身就是一個二叉搜索樹。只不過紅黑樹比一般的二叉搜索樹更加穩定,也就是更加平衡,但是有沒有AVL樹那麼的穩定,這換來的是紅黑樹比AVL數有更好的插入和刪除效率,但是查找效率並沒有比A

原创 淺析ZooKeeper的Watcher機制

Watcher是實現ZooKeeper的發佈/訂閱功能最核心的一個角色。當我們需要對ZooKeeper的某一個節點的變化做出後續處理時,就需要使用到Watcher。 ZooKeeper的Watcher機制,總的來說可以分爲三個流程:cli

原创 19屆阿里實習一面面經

面經內容如下 應該是簡歷評估面,全程 38分9秒,記錄如下: 面試官看過我的博客和我寫過的代碼,說博客還不是很多(回答主要都寫在CSDN上了,給面試官點一個贊,然後有關於博客上寫了的就都沒有問) 1.你是非專業的,如何規劃學習,平常如

原创 深入理解MyBatis——緩存

MyBatis中使用緩存來提高其性能。 MyBatis中的緩存分爲兩種:一級緩存和二級緩存。使用過MyBatis的可能聽到過這樣一句話“一級緩存是sqlSession級別的,二級緩存是mapper級別的”。這也說明了,當使用同一個sqlS

原创 深入理解MyBatis——初始化

我們知道使用MyBatis前是需要初始化的,我們來看一段代碼: String resource = "mybatis.xml"; InputStream inputStream = Resources.getResourceAsStr

原创 深入理解MyBatis——查詢流程

MyBatis是目前非常流行的ORM框架,它的功能很強大,然而其實現卻比較簡單、優雅。本文主要講述MyBatis的架構設計思路,然後探究MyBatis的是如何實現查詢的。 MyBatis執行流程 利用MyBatis實現一次查詢

原创 TopK問題的Java實現

面試中會經常遇到手撕代碼的情況,而求TopK的是經常遇到的題目。下面我就用Java來實現。主要通過兩種方法實現,快排思想以及堆排序的思想,兩者的複雜度爲O(NlogK)。 基於快排的TopK實現: import java.util.Arr

原创 CyclicBarrier源碼淺析

本文所使用的源碼版本是JDK1.7 CyclicBarrier是什麼? JDK1.7中的介紹如下: A synchronization aid that allows a set of threads to all wait for

原创 面試中遇到的手撕代碼(二)

8.棧的最大值問題 問題的描述和思路可以參考這裏 Java實現代碼如下: import java.util.Stack; /** * 棧的最大值問題 Title: Description: Company: * * @autho

原创 動態規劃案例解析

此文總結了本人在刷LeetCode是遇到的動態規劃問題以及對應的解法。 word-break Given a string s and a dictionary of words dict, determine if s can be s

原创 面試中遇到的手撕代碼題(一)

1.重建二叉樹 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建

原创 深入理解MyBatis——數據源和事務管理

在使用MyBatis是,我們需要配置數據源,常用的數據源有c3p0,dbcp,druid等。打開源碼會發現,他們都實現了javax.sql.DataSource接口。 實質上,MyBatis中數據源可以分爲三類,UNPOOLED、POOL

原创 DFS原理與案例

最近刷leetcode時遇到了好多DFS的題目,一開始的迷茫,只能看着答案一步一步的分析,而現在,對於DFS這類題目有了自己的一些見解。 首先DFS是什麼呢? D—depth,F—first,S—serach,形象一點的講法就是一條道

原创 Redis實現消息隊列

能實現消息隊列的中間件有很多啊,kafka,RabbitMQ,RocketMQ等,不知道爲什麼還要利用Redis去實現消息隊列的功能呢?Redis實現消息隊列和上述專業的消息隊列中間件比,沒有什麼優勢。所以,還是別用Redis實現了。如果