原创 CountDownLatch的原理

    今天在學習ZooKeeper的實例的時候,發現了CountDownLatch這個類,那麼這個類又是如何使用的呢?以及這個類的原理是什麼?我們首先看一下簡單的demo: public class CountDownLatc

原创 關於AQS的學習(一)

這周看了AQS的源碼略有所得,遂寫文章記載一下。 AQS的全稱是AbstractQueuedSychronizd,這個類是整個java.util.concurrent的核心之一,也可以說這個類是我們學習java 併發的一個突破口。

原创 FutureTask源碼學習

FutureTask源碼     FutureTask是一個可以用來監控Callable執行狀況的類     我們首先來看一下它是如何實現監控的: public void run() {

原创 mysql索引優化的總結

Mysql索引優化     就像我們經常知道的在數據庫中我們可以通過設置索引來加快查詢的速度。可是如果索引設置不合理也有可能導致非常不好的後果。     我們大家都知道的是mysql默認的引擎是innodb,建議不知道的去了解一

原创 File rename的bug問題

    今天在stackOverFlow看到一個問題,這裏是鏈接地址,經過測試,我們只要關閉了所有指向牽扯rename的兩個文件的指針,就可以成功了。BufferWrite做的是緩存了一個byte數據,不會立即寫入FileOutp

原创 Timer的源碼分析

#對java Timer的分析 爲什麼要分析Timer的源碼進行分析?     希望對Timer類的瞭解,加深對任務調度的理解。 ###Timer源碼的分析 public void schedule(TimerTask task,

原创 java Properties 的學習

Properties類   在一個系統中需要一些配置信息,那麼如何更好地管理這些配置(增刪改查)?Properties爲我們提供了這樣的基本功能,Properties用簡單的key、value存儲系統的配置信息。 Properti

原创 關於JDBC連接Class.forName()的思考

使用JDBC的時候,我們都會按照推薦的加入下面一條語句: Class.forName("com.mysql.jdbc.Driver"); 這條語句如果不添加就會錯誤,但是這條語句好像只是加載了一個類而已,沒有執行任何操作。那麼爲什麼必須

原创 FiexedThreadPoolExecutor的原理分析

FixedThreadPoolExecutor的原理分析 定義FixedThreadPoolExecutor其實是利用ThreadPoolExecutor來實現的,因此我們只需要理解ThreadPoolExecutor這個類即可。

原创 關於ConcurrentHashMap的size的思考

最近在學習關於java併發的一些知識,因此開通博客記錄整個過程,也算是督促一下自己 ConcurrentHashMap我們都知道的是通過分段鎖來控制整個HashMap的安全性,那麼求ConcurrentHashMap在求size的時候

原创 ReadWriteLock和ReetrantLock的區別

ReadWriteLock和ReetrantLock   ReetrantLock是Lock框架的下的一個實現,實現對對象的鎖定,用在保證線程安全,ReadWriteLock和ReetrantLock的功能類似。那麼它們之間的區別

原创 MyBatis的學習總結

    按照學習計劃,本週應該學習Mybatis的源碼。 爲什麼要學習Mybatis?     Mybatis是一款非常優秀的ORM框架,利用ORM我們可以非常容易地進行數據庫的相關操作。本人希望通過Mybatis源碼的學習,理解

原创 ByteArrayOutputStream以及DataOutputStream的組合使用

DataOutputStream和ByteArrayOutputStream組合起來可以實現序列化,那麼如何進行組合起來呢? @Test public void testDataOutputStreamAndDataIn

原创 關於maven pom.xml中dependency type 爲pom的應用

dependency爲什麼會有type爲pom,默認的值是什麼? dependency中type默認爲jar即引入一個特定的jar包。那麼爲什麼還會有type爲pom呢?當我們需要引入很多jar包的時候會導致pom.xml過大

原创 java 類加載機制

背景    類加載可以將一個用全限定名來描述的類加載到虛擬機中,瞭解類加載機制可以幫助更快的解決一些日常的jar包衝突等問題。 雙親委派模型   在java中,這些類加載器都由java語言實現,並且都繼承自java.lang.ClassL