JDK源碼閱讀項目搭建之記錄

1、JDK源碼的重要性

JDK源碼的重要性不言而喻,平時的面試、深刻學習等都離不開JDK的源碼。固然,JDK源碼是很是優秀的代碼,咱們之因此閱讀JDK源碼,就是爲了理解底層原理、學習優秀的設計模式和思想。不過JDK源碼也是至關難啃的知識點,咱們必定要有信心,不要畏難,硬着頭皮去學習,必定會有很大的收穫的。java

2、搭建JDK源碼閱讀項目

一、新建項目並導入JDK源碼

首先新建一個普通的Java項目,筆者這裏將項目取名爲jdkSourceLearn,你們可自行選擇。
建立項目步驟1
建立項目步驟2
建議你們新建兩個目錄,一個叫source,放置JDK源碼;一個叫test,放置測試用例。這樣層次結構較爲清晰,方面學習。
項目目錄結構
如今導入JDK源碼,找到安裝JDK的目錄,裏面有個叫src.zip的文件,那個就是源碼的壓縮文件。將其解壓完畢後直接拷貝到項目的source目錄下便可。
源碼位置
項目建立成功面試

二、建立測試用例嘗試調試

這裏在test目錄下建立一個相關測試用例並嘗試進行調試。設計模式

package cn.mambalhb.test;

import java.util.HashMap;
import java.util.Set;

public class HashMapTest {

    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();

        map.put("aaa", "AAA");
        map.put("bbb", "BBB");
        map.put("ccc", "CCC");

        Set<String> keys = map.keySet();
        for (String key : keys) {
            System.out.println(key + "===>" + map.get(key));
        }
    }

}

設置斷點並點擊調試後,一般須要等待項目Build一會,這個時候會出現一堆錯誤,下面來一個一個解決。學習

三、解決相關問題

(1)系統資源不足

問題提示以下:
系統資源不足提示
經過提示能夠看出致使這個錯誤出現的緣由是內存不夠。解決辦法固然是加大內存。
點擊File-->Settings-->Build,Execution,Deployment-->Compiler,將Build process heap size(Mbytes)選項加大,默認值是700,筆者這裏調至1200:
系統資源不足解決測試

(2)程序包com.sun.tools.javac.*不存在

問題提示以下:
程序包com.sun.tools.javac.*不存在
這是缺乏tools的jar包所致使的。
點擊File-->Project Structure-->Libraries
程序包不存在解決
選擇JDK安裝目錄,在lib目錄下找到tools.jar,點擊ok導入便可。
程序包不存在解決網站

(3)找不到符號UNIXToolkit、FontConfigManager

問題提示以下:
找不到UNIXToolkit提示
找不到FontConfigManager提示
這是由於在Windows平臺下缺乏了兩個java類文件所致使的。
這兩個類文件可在OpenJDK網站上找到。
OpenJDK
注意這裏選擇本身相應的JDK版本,筆者的是jdk1.8.0_162。
OpenJDK
OpenJDK
OpenJDK
OpenJDK
OpenJDK
OpenJDK
OpenJDK
OpenJDK
UNIXToolkit位置
FontConfigManager位置
找到這兩個類文件的位置後,將它們複製進項目以下圖所示的位置中。
文件放入位置
此時再調試或者運行測試用例的時候,能夠看到已經成功運行。
運行成功ui

3、完善項目設置

一、容許調試進入

此時若是咱們打斷點進行單步調試的話,能夠發現點擊Step Into沒法進入源碼內部,由於JDK源碼的受保護的,沒法進入,可是點擊Force Step Into是能夠進入源碼內部的。若是想要直接按F7(即點擊Step Into)進入源碼內部的話,須要作以下設置:
點擊File-->Settings-->Build,Execution,Deployment-->Debugger-->Stepping,取消勾選Do not step into the classes
容許調試進入設置spa

二、編輯源碼文件

若是咱們想要對源碼文件作記錄或者註釋時,會發現源碼文件是隻讀的,沒法編輯。由於此時項目關聯的源碼文件還不是剛纔複製進項目的文件,而是jdk安裝目錄下的源碼文件。從新將項目關聯的源碼文件設置成該項目下的源碼文件便可。
點擊File-->Project Structure-->SDKs
關聯項目源碼
這裏將原先的jdk安裝目錄下關聯的源碼路徑刪除,添加剛纔拷貝至項目目錄下的源碼路徑。
關聯項目源碼
這個時候,再進行調試進入源碼內部的時候,能夠發現,文件上面的小鎖標誌已經不見了,源碼文件也能夠進行註釋記錄了。
源碼關聯成功.net

4、總結

至此,關於JDK源碼閱讀項目的搭建已經完成。平時學習源碼的時候,不能只是光看,必定要動手調試,在調試的過程當中閱讀源碼,作記錄,寫註釋,缺一不可。將輸入轉化爲輸出,堅持下去。設計

相關文章
相關標籤/搜索