原创 RestTemplate工作原理及攔截器的使用

RestTemplate的使用 new RestTemplate().getForObject("http://www.baidu.com", String.class); 源碼分析 getForObject()方法源碼: @

原创 easy-http

1.克隆項目 1.1 項目地址 https://gitee.com/xiaoyudeguang/easy-start develop分支 1.2 項目結構 1.3 pom文件 <project xmlns="http://maven.

原创 easy-pio

1. 前言    最近,處於工作的需要,老是需要跟excel打交道。找遍了各大論壇,沒有找到一個趁手的工具,於是決定自己手寫一個。和之前的easy-系列一樣,開源出來供大家使用。 2. Maven引入         <depende

原创 探索單元測試系列(1) Junit的簡單使用

定義 這是百度百科對Junit的定義:  實操 1. 編寫被測試類 package com.example.demo.junit; /** * Junit演示 * * @ClassName JunitDemo * @Auth

原创 阻塞隊列BlockQueue

 先上BlockQueue的源碼: public interface BlockingQueue<E> extends Queue<E> { //增加一個元索 如果隊列已滿,則拋出一個IIIegaISlabEepeplian異

原创 HashMap源碼閱讀(JDK1.8)

 HashMap實現了Map接口,繼承了AbstractMap父類(AbstractMap也實現類Map接口)。HashMap的類聲明如下: public class HashMap<K,V> extends AbstractMap<K

原创 lock接口的lock()和tryLock()區別

正文開始前先把lock接口的源碼擺出來(精簡後的,特意保留了部分註釋)  public interface Lock { /** * Acquires the lock. */ void lock()

原创 手寫服務器系列(3) TCP服務端識別HTPP請求

 問題:http請求到了服務器端變成了什麼?   我們啓動以下我們的服務端程序,然後通過瀏覽器請求一下我們的服務器。 package com.zlyx.easy.server; import java.io.BufferedReade

原创 探索單元測試系列(4) Mock對象的各種寫法

1. 通過Mockito.mock()來創建假對象 package com.example.demo.mock.controller; import com.example.demo.junit.spring.service.Juni

原创 深入WriteLock和ReadLock

接着上一篇JDK lock鎖,這次我們來挖一挖lock鎖的底層。 首先,我們來看看WriteLock的實現 public static class WriteLock implements Lock, java.io.Seria

原创 探索單元測試系列(3) Mockito的簡單使用

定義       mock是在測試過程中,對於一些不容易構造/獲取的對象,創建一個mock對象來模擬對象的行爲。 意義     傳統的單元測試需要保證程序的每一個部分都是就緒的,完整的和可用的。直到程序的各個部分被完全開發完才能進入測試階

原创 公平鎖(FairSync)和非公平鎖(NonfairSync)

接着上一篇深入WriteLock和ReadLock,我們這篇博客將要揭開公平鎖(FairSync)和非公平鎖(NonfairSync)的神祕面紗。  公平鎖(FairSync)源碼: /** * Fair versio

原创 ConcurrentHashMap源碼閱讀

面試時面試官最常問的幾個問題: 1. HashMap是線程安全的嗎?     答:不是。 2. 既然HashMap不是線程安全的,那有什麼替代方案?     (1)用HashTable,它是線程安全的,但是被棄用了(性能問題被棄用了)。

原创 算法和數據結構(二):算法

接着上篇博客,這篇博客我們一起看看傳說中的算法(早知道這麼簡單,早點看看的話,阿里也就去了,淚奔....)。 面試常見的算法分爲兩種:排序算法和查找算法。 1.排序算法 面試題目:給定任意的一個無序數組,用 你熟悉的算法做一個排序(建議自

原创 深入理解Redis原理

Redis簡述     Redis是一種內存型的非關係型數據庫,因爲其優秀的性能,經常被用來做緩存(當然也可以作爲一種消息隊列)。Redis支持豐富的數據類型:String、List、Set、ZSet和Hash。爲了節省內存,Redis的