日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

不瞒你说,我最近跟Java源码杠上了

發布時間:2023/12/10 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 不瞒你说,我最近跟Java源码杠上了 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么要讀JDK源碼

當然不是為了裝,畢竟誰沒事找事虐自己 ...

1、面試跑不掉。現在只要面試Java相關的崗位,肯定或多或少會會涉及JDK源碼相關的問題。

2、弄懂原理才不慌。我們作為JDK的使用者,雖然說天天用得很開心,但是有時候遇到問題還是得跟到底層源碼去看看,才能幫助我們更好的弄懂原理,

3、學習優秀的代碼、思想和模式。JDK畢竟是一個優秀的代碼庫,我們天天用,源碼也就在里面,作為一個有志向的程序員,讀一讀源碼也能讓我們吸取到更多優秀的思想和模式。

4、睡前催眠。額 …… 不過的確有效(滑稽)。


源碼難嗎?

廢話,當然有難度啦,不然我也不會到現在都還沒看完,而且看了也經常忘,哭唧唧...

畢竟像JDK這種源碼,和我們平常練手寫小例子、寫業務代碼不一樣,人家畢竟是?類庫,為了性能穩定性通用性擴展性等因素考慮,加入了很多輔助代碼泛型、以及一些設計模式上的考量,所以看起來肯定沒有那么輕松,沒辦法一眼看穿它

所以這玩意兒肯定是一個長期的過程,我個人建議(包括我自己也是這樣),有時候遇到一些問題,可以針對性地把某些組件或者某個部分的源碼,跟到底層去看看,然后做點筆記,寫點注釋啥的,這樣慢慢就能滲透到很多的內容了。

但是我們一定要有足夠的信心,我堅信代碼人家都寫出來了,我就不信我看不懂!


源碼該怎么看

1、方法一:按需閱讀。如果對某個組件、語法或者特性感興趣,或者遇到什么問題疑惑,可以有針對性地跟到底層源碼按需查看,這也是一種比較高效,能快速樹立信心的閱讀方式。

2、方法二:系統化閱讀。具體閱讀內容和順序建議下文詳述。

3、多調試:如果僅僅靠眼睛看,然后腦補畫面調試還是比較吃力的,最好還是借助IDE動手調試起來,走兩步就知道了。

4、別光讀,記得讀完留下點什么。我覺得看了多少不重要,重要的是能輸出多少,多總結、歸納,寫注釋,記筆記

所以下文準備搭建一個Java源碼的閱讀和調試環境,建議人手一個,每當心血來潮時遇到問題時碰到疑惑時閑得無聊時都可以打開工程看一看源碼,做做筆記和注釋。


搭建源碼閱讀調試環境

我個人覺得看源碼這個事情還是應該單獨搞一個Java工程,源碼放里面,測試代碼也放里面,集中調試集中看代碼集中寫注釋比較方便一些。

1、創建源碼閱讀項目

選擇最普通的Java基礎項目即可:

2、創建兩個目錄

分別為:

  • source:稍后放置JDK源碼進去

  • test:放置測試代碼,里面還可以按需要建立層級子目錄

3、導入JDK源碼

有很多小伙伴問JDK的源碼在哪里呢?

遠在天邊,僅在眼前,其實在的JDK安裝目錄下就能找到。

JDK安裝目錄下有一個名為src.zip壓縮包,這正是JDK源碼!

將其解壓后拷貝到上面項目的source目錄下,這樣JDK源碼就導入好了。

有些小伙伴會有疑問,為什么要將JDK源碼導一份放到這個項目里其實主要原因還是方便我們在源碼里閱讀、調試、以及做筆記和注釋。

至于這份JDK源碼怎么用上,下文繼續闡述。

4、調試并運行

我們可以在test目錄里去隨意編寫一段測試代碼。

比如我這里就以HashMap為例,在test目錄下創建一個子目錄hashmap,然后在里面創建一個測試主入口文件Test.java,隨意放上一段測試代碼:

public static void main( String[] args ) {Map<String,Double> hashMap = new HashMap<>();hashMap.put( "k1", 0.1 );hashMap.put( "k2", 0.2 );hashMap.put( "k3", 0.3 );hashMap.put( "k4", 0.4 );for ( Map.Entry<String,Double> entry : hashMap.entrySet() ) {System.out.println( entry.getKey() +":" + entry.getValue());}}

然后啟動調試即可。

不過接下來會有幾個問題需要一一去解決。

問題一:啟動調試時Build報錯,提示系統資源不足

解決方法:?加大Build process heap size。

設置方法:Preferences --> Build,Execution,Deployment --> Compiler,將默認700的數值加大,比如我這里設置為1700:

問題二:想從外層代碼F7單步調試進入JDK源碼內部,結果發現進不去

這是因為調試時,JDK源碼受保護,一般單步調試不讓進,但是可以設置。

解決方法:

Preferences --> Build,Execution,Deployment --> Debugger --> Stepping

問題三:如何對JDK源碼做注釋?

調試進入JDK源碼以后,發現不能進行注釋,每個文件上都有一個小鎖的圖標,這是因為現在關聯的源碼并不是我們項目里剛拷進去的源碼,而是JDK安裝目錄下的src.zip只讀壓縮包。

解決辦法:?重新關聯JDK源碼路徑為本項目路徑下的這一份JDK源碼。

這樣一來,我們就可以愉快地對JDK源碼調試以及做注釋了。


源碼結構和閱讀順序

JDK源碼畢竟太龐大了,所有都看不太現實,我們還是愿意根據日常使用和面試考察的頻繁度來挖取重要的內容先看一看。

如果自己沒有特別的規劃,可以按照如下所示的建議閱讀順序往下進行:

具體的內容簡介如下:

1、java.lang

這里面其實就是Java的基本語法,比如各種基本包裝類型(Integer、Long、Double等)、基本類(Object,Class,Enum,Exception,Thread)等等...

2、java.lang.annotation

包含Java注解基本元素相關的源碼

3、java.lang.reflect

包含Java反射基本元素相關的代碼

4、java.util

這里面放的都是Java的基本工具,最典型和常用的就是各種容器和集合(List、Map、Set)

5、java.util.concurrent

大名鼎鼎的JUC包,里面包含了Java并發和多線程編程相關的代碼

6、java.util.function?+java.util.stream

包含Java函數式編程的常見接口和代碼

7、java.io

包含Java傳統I/O相關的源碼,主要是面向字節和流的I/O

8、java.nio

包含Java非阻塞I/O相關的源碼,主要是面向緩沖、通道以及選擇器的I/O

9、java.time

包含Java新日期和期間相關的代碼,最典型的當屬LocalDateTime、DateTimeFormatter等

10、java.math

主要包含一些高精度運算的支持數據類

11、java.math

主要包含一些高精度運算的支持數據類

12、java.net

主要包含Java網絡通信(典型的如:Socket通信)相關的源代碼。


共勉

看源碼這東西不能急,慢一點才能更快!共勉。


每天進步一點點,Peace!

2020.03.25 晚

總結

以上是生活随笔為你收集整理的不瞒你说,我最近跟Java源码杠上了的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 熟妇人妻中文字幕无码老熟妇 | 久久人人爱 | 超碰超碰超碰超碰超碰 | 国产主播av在线 | 免费成人小视频 | 久久理伦| 国产亚洲精品成人无码精品网站 | 99国产精品99 | 欧美另类高清videos的特点 | 国产中文在线 | 国产乱子伦一区二区 | 日韩大片一区二区 | 白白色在线观看 | 亚洲无人区码一码二码三码 | 久久久夜色精品 | 成人自拍网 | 久久人人爽人人爽人人片亚洲 | 人人看人人艹 | 看av网| www.youjizz国产| 99成人在线观看 | 日本福利一区二区三区 | 黄色三级小说 | 国产口爆吞精一区二区 | 日韩精品在线观看一区二区 | 欧美精产国品一二三 | 国产一卡二 | 最色网站| 亚洲一区二区在线观看视频 | 欧美日韩亚洲精品一区二区 | 国产精品久久久久久久专区 | 91av导航| 国产尤物网站 | 欧美丰满美乳xxⅹ高潮www | 亚洲一区 在线播放 | 伊人蕉| 91免费视频大全 | 中文字幕国产亚洲 | 91pao| 久久国产精品无码网站 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 亚洲国产精品久久久久 | 午夜亚洲精品 | 青青草午夜 | 中国大陆毛片 | 污污污www精品国产网站 | 亚洲综合激情网 | 中文在线天堂网 | 精品国产97 | 午夜av免费观看 | 伊人成年网 | 野外性满足hd | 亚洲精品中文字幕成人片 | 成人在线免费视频 | 日韩亚洲欧美一区二区 | av一区二区三区免费观看 | 亚洲天堂少妇 | 人妻熟人中文字幕一区二区 | 九九九九九精品 | 久久精品国产亚洲av香蕉 | 国产碰碰 | 人人草在线观看 | 相亲对象是问题学生在线观看 | 黄色小视频免费在线观看 | 久久久久久久久久久电影 | 超碰999| 日韩jizz | 色噜噜一区二区三区 | 大陆熟妇丰满多毛xxxⅹ | 美女扒开尿口让男人捅爽 | 国产婷婷色综合av蜜臀av | 久久精品久久久久久 | 色妞色视频一区二区三区四区 | 亚洲精品动漫在线观看 | 高清人妖shemale japan| 欧美sm极限捆绑bd | 亚洲干| 国产日韩av在线播放 | 一本到视频 | 精品国产91久久久久久久妲己 | 国产精品一 | 日本高清无吗 | sesese99| 国产一区二区视频免费在线观看 | 国产精品无码毛片 | 91色综合 | jizz美女| 久久久精品区 | 女生扒开尿口让男生桶 | av免费片 | www在线观看视频 | 国产精品乱码一区二区视频 | 超碰激情在线 | 欧美成年网站 | 成人另类小说 | 国产传媒在线视频 | 国产中文字幕在线免费观看 | 久久婷婷伊人 | 色播视频在线观看 |