原创 一個簡單的java多線程例子

現在有這樣一個任務,有一份手機號列表(20W),有一份話單的列表(10W),要統計哪些手機號沒有出現在話單中,哪些手機號在話單中出現了不止一次。 想到的最直接的方式,就是兩層循環去遍歷,雖然此方法比較笨,但目前還沒有想出更好的辦法。 一開

原创 shell十三問總結

我們知道計算機的硬件資源比如磁盤,IO,內存都是由軟件來統一管理的,這類特殊的軟件就是常說的操作系統,windows在底層的資源控制基礎上構建了自己的界面,非常適合使用,只需要到處點點就能完成我們需要的功能。這是一種控制資源的方式,同時也

原创 How Tomcat Works 2

上一節(How Tomcat Works 1 編寫一個簡單靜態web服務器)編寫了一個簡單的web服務器,只能處理靜態的資源,本節將繼續向前邁出一個小步,創建兩個不同的servlet容器,能夠利用servlet簡單的處理動態內容。注意每節

原创 oracle事務和鎖

在瞭解oracle鎖之前,先來看下在多用戶併發操作下數據庫可能出現哪些問題? 1、丟失更新 簡單的說當操作按照下面的操作進行時便會發生丟失更新的問題 a、會話session1中的一個事務獲取一行數據,放入本地內存,並展現給最終用戶User

原创 認識kafka

kafka是一個分佈式的消息隊列由scala編寫,不同於傳統的一些消息隊列,kafka的設計理念與衆不同。 1、kafka的特點 。快速 單臺kafka的broker實例能夠支撐幾千臺機器每秒幾百兆字節的讀寫,如果組成集羣性能會更強進,從

原创 自定義spirng schema

spring已經爲我們提供了很豐富的xml元素,但是有時候我們需要自己擴展spring schema來定製標籤,spring已經爲我們提供了擴展的api,使用起來非常方便。本片文章來自於spring官網的教程。 如果要定義自己的schem

原创 How Tomcat Works 6

瞭解tomcat的人可能知道tomcat是由一個個的組件組成的,有些組件可以包含子組件,比如容器中可能包含loader、manager等組件。不瞭解tomcat結構的可以看下本系列的第三節。tomcat用catalina類來表示整個tom

原创 java異步編程

        很多時候我們都希望能夠最大的利用資源,比如在進行IO操作的時候儘可能的避免同步阻塞的等待,因爲這會浪費CPU的資源。如果在有可讀的數據的時候能夠通知程序執行讀操作甚至由操作系統內核幫助我們完成數據的拷貝,這再好不過了。從N

原创 How Tomcat Works 5

上一節簡單介紹了tomcat中的流水線,當connector收到一條消息的時候,將socket交給processor來處理,processor構造出來request和response對象並解析http請求,然後processor調用con

原创 cglib的簡單案例

本文的例子全部來自github上cglib的官方文檔,有關cglib的教程少之又少,如果想學習覺得還是看看諸如Hibernate和Spring的源碼來的實在。 package com.tang; import static org.ju

原创 深入理解java同步、鎖機制

本片文章嘗試從另一個層面來了解我們常見的同步(synchronized)和鎖(lock)機制。如果讀者想深入瞭解併發方面的知識推薦一本書《java併發編程實戰》,非常經典的一本書,英語水平好的同學也可以讀一讀《Concurrent pro

原创 How Tomcat Works 4

本系列第四節重點講講tomcat中的流水線和閥門。 如果你瞭解servlet的過濾器那麼理解流水線會容易得多,因爲他們兩個的原理是一樣的。一個流水線就像是一個過濾鏈,上面的閥門就和過濾器一樣,在tomcat中閥門可以操作傳遞給他們的Req

原创 How Tomcat Works 3

Tomcat體系結構中有一個非常重要的概念——連接器,看下面這張圖 一個connecotr對應一個container,connector用於接收請求,然後傳遞給container組件去處理,tomcat中默認的連接器是coyote,按照

原创 數據結構之紅黑樹

上一節我們自己簡單實現了一棵二叉查找樹(數據結構之二叉查找樹),雖然理論上二叉查找樹的搜索時間是Olngn和樹高成正比,但是實際上二叉查找樹的平衡性並不理想,因此後面又出來了平衡二叉樹,紅黑樹就是一種平衡的二叉查找樹,先來看下什麼是二叉

原创 ReentrantLock源碼分析

深入理解java同步、鎖機制我們主要講解了關於synchronized的實現和各種鎖的類型,本節將嘗試從源碼的角度去理解可重入鎖ReentrantLock的實現。由於個人水平有限,文中出現錯誤的地方還請指出,避免誤導更多人。 要理解Ree