原创 VIM編輯器練級攻略

引言 我個人覺得學習任何一項技能最好的方式是把學習當作一種娛樂,比如:打遊戲。這樣會讓你有意外的收穫和保持學習的激情。 任何時候我們都要保持這種激情,讓它成爲你的一種潛意識。玩過遊戲的人都知道,遊戲當中涉及到打怪升級,VIM也是一樣,我們

原创 初探DNS域名系統

引言 網絡出現的早期使用IP地址通訊的,那時就幾臺主機通訊。但是隨着接入網絡主機的增多,這種數字串標識的地址非常不便於記憶,UNIX上就出現了建立一個叫做hosts的文件(Linux和Windowss繼續保留了這個文件)。這個文件中記錄着

原创 ASM 3.0 編程框架

引言 ASM 通過(Tree)樹這種數據結構來表示複雜的字節碼結構,並利用 Push 模型來對樹進行遍歷,在遍歷過程中對字節碼進行修改。所謂的 Push 模型類似於簡單的 Visitor 設計模式,因爲需要處理字節碼結構是固定的,所以不需

原创 Java動態字節碼技術-ASM

引言 ASM 通過樹這種數據結構來表示複雜的字節碼結構,並利用 Push 模型來對樹進行遍歷,在遍歷過程中對字節碼進行修改。所謂的 Push 模型類似於簡單的 Visitor 設計模式,因爲需要處理字節碼結構是固定的,所以不需要專門抽象出

原创 分佈式系統架構的本質

引言 最近幾年,大家一直在討論各式各樣的架構,如:高併發架構、異地多活架構、容器化架構、微服務架構、高可用架構、彈性化架構。還有這些架構相關的管理型技術方法,如:DevOps、應用監控、自動化運維、SOA服務治理、去IOE等等。面對這麼多

原创 深入理解ASM-Java類文件

引言 所謂 Java 類文件,就是通常用 javac 編譯器產生的 .class 文件。Java 源文件經過 javac 編譯器編譯之後,將會生成對應的二進制文件(如下圖所示)。每個合法的 Java 類文件都具備精確的定義,而正是這種精確

原创 通用寄存器

引言 要想真正的瞭解計算機,首先要了解的便是CPU,CPU是計算機的核心部件,因爲計算機的所有指令都是由CPU處理的,而CPU的核心部件之一就是寄存器。所以瞭解寄存器和寄存器是如何工作的才能真正明白計算機的工作原理。 8/16/32位通用

原创 高性能網絡編程(一):單臺服務器併發TCP連接數到底可以有多少?

引言   曾幾何時我們還在尋求網絡編程中C10K問題(有關C10K問題請見文章《The C10K problem(英文在線閱讀、英文PDF版下載、中文譯文)》)的解決方案,但是現在從硬件和操作系統支持來看單臺服務器支持上萬併發連接已經沒有

原创 進制運算

引言 上一節我們從《進制的本質》深刻的理解了什麼是進制,本節我們着重介紹進制之間是如何進行運算的。 相信,十進制是大家小學時就會的:0,1,2,3,4,5,6,7,8,9。那麼九進制大家也應該都會:0,1,2,3,4,5,6,7,8。 十

原创 進制的本質

引言 進制跟我們生活息息相關,比如:月份,時鐘,星期等,那麼計算機也離不開進制,計算機是通過二進制進行操作和運算的。 爲什麼要學習進制 理解了進制與現實世界的關係後,爲了使我們真正的瞭解計算機和計算機的運行原理。我們必須忘掉呆板的十進制!

原创 Git的正確姿勢

引言 與傳統的代碼版本工具相比,Git有很多的優勢,因而越來越多的程序員喜歡版本管理工具。Git這個版本管理工具最大的優勢包含以下幾個方面: Git是一個分佈式的版本管理工具,而且可以是單機版的,所以,你在沒有網絡環境的時候同樣可以提交(

原创 計算機內存

引言 計算機的內存是一塊連續的存儲空間,存儲空間按編號劃分爲存儲單元了,每一個單元都有獨立的編號,每一個獨立的編號分別存儲一個字節(8bit)的數據。 寄存器與內存的區別 我們可以簡單的認爲:快速算盤叫做寄存器。慢速的稱爲內存。 其實他們

原创 十六進制與數據寬度

引言 通過前兩篇的文章《進制的本質》和《進制運算》,相信大家對進制有了真正的理解。 在自然界都只有二進制存在。就如《易經》一中當中提到的[道生一,一生二,二生四,四生八,八生萬物]. 有二進制已經足夠了,完全沒有必要有其它的進制。其實,自

原创 Teach Yourself Programming in Ten Years

引言 一大早看到一幅很搞笑的圖集,“21天教你學會C++”。第一感覺我是覺得搞笑,第二是覺得類似於以這樣的標題命名的書籍,我個人對此非常的討厭,相信看過《一萬小時天才理論》這本書的人都知道,技能這東西根本不可能速成,它需要我們反覆的練習與

原创 可視化的數據結構和算法

引言 今天在網上又看到了一箇舊金山大學David Galles做的各種可視化的數據結構和基本算法的主頁,網址在這裏,大家可以看看。我把這個頁面的目錄列在下面並翻譯了一下,大家可以直接點擊了。 不知道國內的教育有沒有相關的教學課件,至少在我