原创 Spring緩存使用介紹

1. 不使用框架的緩存方案 第三方的緩存實現已經有很多,有 guava cache、redis、tair等,它們解決的是緩存的底層問題。 在不使用框架的情況下,參考之前的wikiGuava cache,在項目直接使用內存緩存。 在

原创 Spring-AOP結合自定義註解的使用

最近在項目(IDEA+Spring+JDK1.6+)中,爲了控制用戶的讀寫權限,使用了AOP技術,將權限控制定義成了一個切面(Aspect)。 1、AOP的基本概念 AOP是spring框架中的重要特性,英文爲Aspect Orie

原创 Guava cache介紹

Guava是谷歌開源的java工具類jar包,是Google的java核心庫,許多java項目都依賴它。Guava包括:集合collections, 緩存caching,原生類型primitives support,併發庫concurr

原创 Java自定義註解

最近在項目中用到了java的自定義註解,在解決問題之後,詳細學習了java的自定註解的用法。 1、註解的作用 “註解”有註釋、解釋的含義。註解也是一種元數據,即是數據的數據,註解是描述java源代碼信息的數據,是java源代碼的元數

原创 Netty服務端啓動過程源碼解析

Netty服務端創建時序圖 創建ServerBootstrap實例 ServerBootstrap是一個用於啓動Netty服務端的輔助類,提供一系列方法設置啓動參數。因爲ServerBootstrap需要設置的各項信息很多,所以這裏

原创 機器學習初探-常用優化算法介紹

目的:簡單介紹機器學習中常用的一些優化算法,主要用於無約束最優化問題的求解。具體包括梯度下降法(最速梯度下降),牛頓法,幾個擬牛頓法(包括DFP,BFGS,LBFGS等,共軛方向法,共軛梯度法,信賴域方法等不在本次做討論)。

原创 通過tiny-spring學習Spring框架IOC源碼(四)

這篇文章繼續跟隨tiny-spring的思路體會Spring框架中IOC中的經典設計,第五步主要將Xml中配置的Bean解析後注入到Bean實例中後,引入了BeanReference,並getBean時候判斷沒有bean的時候創建新的實例

原创 java網絡編程幾種IO模型的介紹和對比

本文通過實現一個簡單的時間服務器和客戶端,分別對JDK的BIO、NIO和JDK1.7中的NIO 2.0的使用進行介紹和對比,瞭解基於java的網絡編程的發展。本文內容主要參考《Netty權威指南》。 BIO BIO即同步阻塞IO,採

原创 網絡I/O模型知識總結

在實際應用中,數據操作通常分爲輸入和輸出,那麼以輸入爲例,在操作系統中,一個數據的輸入通常分爲以下兩個過程: 等待數據準備好.將準備好的數據從內核拷貝到用戶空間      下面我們將會分別討論 I/O 模型中的兩個大類,即 同步 I

原创 Netty實現原理淺析

1. Netty簡介 Netty是一個高性能、異步事件驅動的NIO框架,基於JAVA NIO提供的API實現。它提供了對TCP、UDP和文件傳輸的支持,作爲一個異步NIO框架,Netty的所有IO操作都是異步非阻塞的,通過

原创 NIO的使用總結

背景 傳統流I/O是基於字節的,所有I/O都被視爲單個字節的移動;而NIO是基於塊的,大家可能猜到了,NIO的性能肯定優於流I/O。沒錯!其性能的提高 要得益於其使用的結構更接近操作系統執行I/O的方式:通道和緩衝器。 我們可以把它

原创 FIFO和LFU算法介紹

FIFO:First In First Out,先進先出。判斷被存儲的時間,離目前最遠的數據優先被淘汰。LRU:Least Recently Used,最近最少使用。判斷最近被使用的時間,目前最遠的數據優先被淘汰。LFU:Least F

原创 【Java併發學習】深入淺出AbstractQueuedSynchronizer

1 從ReentrantLock說起         Java從語言級別支持多線程,用戶可以很容易的編寫多線程的程序。需要注意的是,當多個線程訪問共享資源時,爲了保證數據的正確性,需要進行同步。Java提供了synchronized關

原创 【Java集合框架源碼】LinkedHashMap剖析

簡介 LinkedHashMap是HashMap的一個子類,保存了記錄的插入順序,在用Iterator遍歷LinkedHashMap時,先得到的記錄肯定是先插入的,也可以在構造時帶參數,按照訪問次序排序。 HashMap與

原创 Netty介紹

介紹 Netty is an asynchronous event-driven network application framework  for rapid development of maintainable high pe