原创 OpenJDK 源代閱讀之 ArrayDeque

概要 類繼承關係 java.lang.Object java.util.AbstractCollection<E> java.util.ArrayDeque<E> 定義 public class ArrayD

原创 wsgiref 源代碼分析

wsgiref 源代碼分析 wsgiref wsgiref 是Python標準庫給出的 WSGI 的參考實現。 WSGI是Python Web 開發中爲服務器程序和應用程序設定的標準,滿足這一標準的服務器程序和應用程序可以配合使用

原创 開始OpenJDK源代碼閱讀

開始OpenJDK源代碼閱讀 在閱讀了一週的 OpenJDK 源代碼後,我才寫這篇文章。因爲除非你已經開始閱讀,否則是不知道自己是不是應該讀下去的。所以,不要貿然說自己要幹嘛,先做一段時間,覺得感覺還好,再決定做下去。 這一週,主要

原创 使用 GitHub, Jekyll 打造自己的免費獨立博客

使用 GitHub, Jekyll 打造自己的免費獨立博客 GitHub是一個代碼託管網站,現在很多開源項目都放在GitHub上。 利用GitHub,可以讓全球各地的程序員們一起協作開發。GitHub 提供了一種功能,叫 GitHub

原创 OpenJDK 源代碼閱讀之 String

概要 類繼承關係java.lang.Object java.lang.String 定義 public final class String extends Object implements Serializable, Co

原创 OpenJDK 源代碼閱讀之 ArrayList

概要 類繼承關係java.lang.Object java.util.AbstractCollection<E> java.util.AbstractList<E> java.util.A

原创 OpenJDK 源碼閱讀之 Java 字節流輸入類的實現

Java 的輸入輸出總是給人一種很混亂的感覺,要想把這個問題搞清楚,必須對各種與輸入輸出相關的類之間的關係有所瞭解。只有你瞭解了他們之間的關係,知道設計這個類的目的是什麼,才能更從容的使用他們。 我們先對 Java I/O 的總體結構

原创 OpenJDK 源碼閱讀之 Java 字節流輸出類的實現

Java 的輸入輸出總是給人一種很混亂的感覺,要想把這個問題搞清楚,必須對各種與輸入輸出相關的類之間的關係有所瞭解。只有你瞭解了他們之間的關係,知道設計這個類的目的是什麼,才能更從容的使用他們。 這是這個系列的第二篇,描述字節輸出類的

原创 對C語言中的static關鍵字的深入理解

對C語言中的static關鍵字的深入理解 在閱讀一些項目源代碼時,我發現很多時候,會把函數和變量聲明爲static,所以,很好奇爲什麼要這樣做,於是有了下面這篇文章。 基本概念 使用static有三種情況: 函數內部static變

原创 OpenJDK 源代碼閱讀之 Collections

概要 代碼路徑爲:  jdk/src/share/classes/java/util/Collections.java 類繼承關係 java.lang.Object java.util.Collections 定義 publ

原创 OpenJDK 源代碼閱讀之 HashMap

概要 類繼承關係java.lang.Object java.util.AbstractMap<K,V> java.util.HashMap<K,V> 定義public class TreeMap<K,V> ex

原创 OpenJDK 源代碼閱讀之 TimSort

概要 這個類在 Oracle 的官方文檔裏是查不到的,但是確實在 OpenJDK 的源代碼裏出現了,Arrays 中的 sort 函數用到了這個用於排序的類。它將歸併排序(merge sort) 與插入排序(insertion so

原创 使用JVMTI獲取Java多線程程序指令執行次序

使用JVMTI獲取Java多線程程序指令執行次序 在Java多線程程序中,由於線程調度,指令間的次序在每次運行時都可能不相同,有時候,我們需要得到指令次序,用來分析程序的行爲。這樣細粒度的底層行爲用一般方法很難完成,我們需要藉助 JV

原创 OpenJDK 源代碼閱讀之 BitSet

概要 類繼承關係 java.lang.Object java.util.BitSet 定義 public class BitSet extends Object implements Cloneable, Serializa

原创 OpenJDK 源代碼閱讀之 TreeMap

概要 類繼承關係java.lang.Object java.util.AbstractMap<K,V> java.util.HashMap<K,V> 定義public class TreeMap<K,V>