国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

帶你一起學習如何閱讀Java源碼?

開發 后端
在閱讀源碼之前,我們要有一定程度的技術基礎的支持。假如你從來都沒有學過Java,也沒有其它編程語言的基礎,上來就啃《Core Java》,那樣是很難有收獲的,尤其是《深入Java虛擬機》這類書,或許別人覺得好,但是未必適合現在的你。

[[238477]]

閱讀Java源碼的前提條件:

1、技術基礎

在閱讀源碼之前,我們要有一定程度的技術基礎的支持。

假如你從來都沒有學過Java,也沒有其它編程語言的基礎,上來就啃《Core Java》,那樣是很難有收獲的,尤其是《深入Java虛擬機》這類書,或許別人覺得好,但是未必適合現在的你。

比如設計模式,許多Java源碼當中都會涉及到。再比如閱讀Spring源碼的時候,勢必要先對IOC,AOP,Java動態代理等知識點有所了解。

2、強烈的求知欲

強烈的求知欲是閱讀源碼的核心動力!

大多數程序員的學習態度分為如下幾個層次:

  • 完成自己的項目就可以了,遇到不懂的地方就百度一下。
  • 不僅做好項目,還會去閱讀一些和項目有關的書籍。
  • 除了閱讀和項目相關的書籍之外,還會閱讀一些IT行業相關的書籍。
  • 平時會經常逛逛GitHub,找一些開源項目看看。
  • 閱讀基礎框架、J2EE規范、源碼。

大多數程序員的層次都是在***層,到第五層的人就需要有強烈的求知欲了。

3、足夠的耐心

通過閱讀源碼我們可以學習大佬的設計思路,技巧。還可以把我們一些零碎的知識點整合起來,從而融會貫通。總之閱讀源碼的好處多多,想必大家也清楚。

但是真的把那么龐大復雜的代碼放到你的眼前時,肯定會在閱讀的過程中卡住,就如同陷入了一個巨大的迷宮,如果想要在這個巨大的迷宮中找到一條出路,那就需要把整個迷宮的整體結構弄清楚,比如:API結構、框架的設計圖。而且還有理解它的核心思想,確實很不容易。

剛開始閱讀源碼的時候肯定會很痛苦,所以,沒有足夠的耐心是萬萬不行的。

如何讀Java源碼:

團長也是經歷過閱讀源碼種種痛苦的人,算是有一些成功的經驗吧,今天來給大家分享一下。

如果你已經有了一年左右的Java開發經驗的話,那么你就有閱讀Java源碼的技術基礎了。

1、建議從JDK源碼開始讀起,這個直接和eclipse集成,不需要任何配置。

可以從JDK的工具包開始,也就是我們學的《數據結構和算法》Java版,如List接口和ArrayList、LinkedList實現,HashMap和TreeMap等。這些數據結構里也涉及到排序等算法,一舉兩得。

面試時,考官總喜歡問ArrayList和Vector的區別,你花10分鐘讀讀源碼,估計一輩子都忘不了。

然后是core包,也就是String、StringBuffer等。 如果你有一定的Java IO基礎,那么不妨讀讀FileReader等類。

建議大家看看《Java In A Nutshell》,里面有整個Java IO的架構圖。Java IO類庫,如果不理解其各接口和繼承關系,則閱讀始終是一頭霧水。

Java IO 包,我認為是對繼承和接口運用得***雅的案例。如果你將來做架構師,你一定會經常和它打交道,如項目中部署和配置相關的核心類開發。

讀這些源碼時,只需要讀懂一些核心類即可,如和ArrayList類似的二三十個類,對于每一個類,也不一定要每個方法都讀懂。像String有些方法已經到虛擬機層了(native方法),如hashCode方法。

當然,如果有興趣,可以對照看看JRockit的源碼,同一套API,兩種實現,很有意思的。

如果你再想鉆的話,不妨看看針對虛擬機的那套代碼,如System ClassLoader的原理,它不在JDK包里,JDK是基于它的。JDK的源碼Zip包只有10來M,它像是有50來M,Sun公司有下載的,不過很隱秘。我曾經為自己找到、讀過它很興奮了一陣。

2、Java Web項目源碼閱讀

步驟:表結構 → web.xml → mvc → db → spring ioc → log→ 代碼

① 先了解項目數據庫的表結構,這個方面是最容易忘記的,有時候我們只顧著看每一個方法是怎么進行的,卻沒有去了解數據庫之間的主外鍵關聯。其實如果先了解數據庫表結構,再去看一個方法的實現會更加容易。

② 然后需要過一遍web.xml,知道項目中用到了什么攔截器,監聽器,過濾器,擁有哪些配置文件。如果是攔截器,一般負責過濾請求,進行AOP等;如果是監聽器,可能是定時任務,初始化任務;配置文件有如 使用了spring后的讀取mvc相關,db相關,service相關,aop相關的文件。

③ 查看攔截器,監聽器代碼,知道攔截了什么請求,這個類完成了怎樣的工作。有的人就是因為缺少了這一步,自己寫了一個action,配置文件也沒有寫錯,但是卻怎么調試也無法進入這個action,直到別人告訴他,請求被攔截了。

④ 接下來,看配置文件,首先一定是mvc相關的,如springmvc中,要請求哪些請求是靜態資源,使用了哪些view策略,controller注解放在哪個包下等。然后是db相關配置文件,看使用了什么數據庫,使用了什么orm框架,是否開啟了二級緩存,使用哪種產品作為二級緩存,事務管理的處理,需要掃描的實體類放在什么位置。***是spring核心的ioc功能相關的配置文件,知道接口與具體類的注入大致是怎樣的。當然還有一些如apectj等的配置文件,也是在這個步驟中完成。

⑤ log相關文件,日志的各個級別是如何處理的,在哪些地方使用了log記錄日志。

⑥ 從上面幾點后知道了整個開源項目的整體框架,閱讀每個方法就不再那么難了。

⑦ 當然如果有項目配套的開發文檔也是要閱讀的。

3、Java框架源碼閱讀

當然了,就是Spring、MyBatis這類框架。

在讀Spring源碼前,一定要先看看《J2EE Design and Development》這本書,它是Spring的設計思路。注意,不是中文版,中文版完全被糟蹋了。

想要閱讀MyBatis的源碼就要先了解它的一些概念,否則云里來霧里去的什么也不懂。有很多人會選擇去買一些書籍來幫助閱讀,當然這是可取的。那么如果不想的話,就可以去官網查看它的介紹(MyBatis網站:http://www.mybatis.org/mybatis-3/zh/getting-started.html),團長也是按照官網上面的介紹來進行源碼閱讀的。團長認為MyBatis的亮點就是管理SQL語句。

總結

沒有人一開始就可以看得懂那些源碼,我們都是從0開始的,而且沒有什么捷徑可尋,無非就是看我們誰愿意花時間去研究,誰的求知欲更強烈,誰更有耐心。閱讀源碼的過程中我們的能力肯定會提升,可以從中學到很多東西。在我們做項目的時候就會體現出來了,的確會比以前順手很多。 

責任編輯:龐桂玉 來源: Java團長
相關推薦

2018-05-22 14:34:50

編譯Linux內核

2022-02-14 10:16:22

Axios接口HTTP

2023-11-29 12:09:07

AWS網絡服務

2011-04-22 14:14:21

MySQL偷窺線程

2013-01-30 10:15:22

移動閱讀移動應用平臺

2017-11-15 08:50:59

數據庫MySQL

2023-06-26 15:14:19

WebGL紋理對象學習

2021-05-19 10:37:16

WebFlux 前置工具

2010-04-01 13:58:16

WinCE 6.0Cashmere

2015-08-21 09:48:11

女朋友編程學習編程

2023-03-28 07:32:37

2024-02-23 10:25:33

Kubernetes自動擴縮容工作負載

2024-09-11 09:25:00

2023-03-26 12:45:52

Linux內核頭文件

2022-12-01 09:59:57

內核觀測性方法

2021-05-20 07:15:34

RSA-PSS算法簽名

2021-11-26 09:44:42

鏈表節點定位

2018-11-16 16:35:19

Java源碼編程語言

2024-10-09 08:42:03

2020-02-11 12:41:16

Pandas數據
點贊
收藏

51CTO技術棧公眾號

日韩欧美激情在线| 午夜精品国产精品大乳美女| 欧美日韩性生活片| 噜噜噜久久亚洲精品国产品小说| 国产成人av在线播放| 精品国产乱码久久久久久樱花| 欧美福利视频导航| 日本福利午夜视频在线| 最新热久久免费视频| 欧美 日韩 国产在线观看| 国产激情视频一区二区在线观看| 视频一区视频二区视频| 亚洲高清不卡| 国产伦一区二区三区色一情| 91精品综合久久久久久久久久久| 日本亚洲精品在线观看| 蜜桃国内精品久久久久软件9| 国内精品久久久久久久| 国产精品zjzjzj在线观看| 91成人免费观看网站| 在线视频亚洲专区| 91精品国产综合久久久久久蜜臀 | 成人午夜亚洲| www.美女亚洲精品| 一区二区三区无毛| 国产69精品99久久久久久宅男| 国产精品1luya在线播放| 97成人超碰免| 欧美美女啪啪| 成人亲热视频网站| 在线精品观看| 日本一区二区三区四区在线观看 | 欧美艳星kaydenkross| 亚洲美女性生活视频| 日日夜夜亚洲| 91av中文字幕| 欧美精品九九| 一区二区三区四区欧美| 国产黄色高清在线| 99视频精品| 国产精品扒开腿做爽爽爽的视频| 日本高清中文字幕在线| 成人欧美一区二区三区黑人孕妇| 欧美日韩影院| 视频在线一区二区三区| 国产91精品久久久久久久网曝门| 91好吊色国产欧美日韩在线| 中文字幕日韩av资源站| 日韩欧美在线番号| 亚洲成人av在线播放| 欧美a级大片在线| 国产在线精品成人一区二区三区| 国产精品一二| 色综合久久久久无码专区| 亚洲激情成人在线| av香蕉成人| 国a精品视频大全| 亚洲欧美网站| 欧美精品久久久久久久久25p| 色国产精品一区在线观看| 日韩影片中文字幕| 国产欧美一区二区三区四区| 精品制服美女久久| 97干com| 日韩午夜电影在线观看| 久久久国产精品入口麻豆| 国产成人精品日本亚洲11| www.色精品| 国产精品视频一区二区久久| 色噜噜久久综合伊人一本| 亚洲国产精品成人| 日b视频免费观看| 色哟哟欧美精品| 日本一区二区三区播放| 麻豆成人av| 亚洲天堂福利av| 亚洲风情在线资源| 91老司机在线| 2022国产精品视频| av毛片在线免费看| 国产精品扒开腿做爽爽爽视频| 国产一区二区免费在线| 欧美视频综合| 国产+成+人+亚洲欧洲| 蜜桃91丨九色丨蝌蚪91桃色| 加勒比日本影视| 亚洲人成网站免费播放| 欧美日韩调教| 一级特黄性色生活片| 亚洲国产黄色片| 亚洲欧美亚洲| 8848hh四虎| 久久精品视频va| 毛片av一区二区| 亚洲综合图片| 欧美一级黑人aaaaaaa做受| 国产mv日韩mv欧美| 男女羞羞电影免费观看| 国产精品色午夜在线观看| 韩国欧美一区二区| 国产无限制自拍| 国产丝袜高跟一区| av免费不卡| 91午夜理伦私人影院| 久久精品一区二区三区不卡| av手机在线观看| 痴汉一区二区三区| 亚洲综合另类小说| 红杏成人性视频免费看| 国产a级片网站| 欧美一级片免费看| 91精品啪在线观看国产81旧版| 五月婷婷狠狠操| 91精品国产免费| 日韩午夜中文字幕| 久久蜜桃香蕉精品一区二区三区| 国产精品日韩久久久| 国产天堂素人系列在线视频| 欧美一级爱爱视频| 91免费视频网站| 午夜精品理论片| 亚州成人在线电影| 日韩精品成人一区二区三区| 久久久久久久久丰满| 色乱码一区二区三区网站| 欧美男男freegayvideosroom| 美女扒开腿让男人桶爽久久软| 又黄又爽在线免费观看| 色播在线观看| 国产精品免费区二区三区观看| 国产婷婷色综合av蜜臀av| 精品中文视频在线| 亚洲国产精品影院| 国产精品久久综合| 欧洲亚洲国产日韩| 日韩欧美国产一区二区在线播放 | 91精品久久久久| 欧美一区二区三区四区高清| 国产精品视频第一区| 久久看片网站| 网曝91综合精品门事件在线| 最新亚洲精品| 丁香5月婷婷久久| 日韩午夜电影网| 国产日韩免费| 日韩午夜在线| 91网站最新网址| 91麻豆精品国产自产在线| 日韩免费观看av| 亚洲欧洲无码一区二区三区| 亚洲精品一级| 网曝91综合精品门事件在线| 国产剧情在线观看一区| 日本一区二区三区视频| 欧美肥老太太性生活| 亚洲欧洲日本mm| 成人三级视频| 你懂的视频在线| 巨骚激情综合| 欧美黄页免费| 精品3atv在线视频| 毛片在线不卡| av片在线观看| 国产99久久久国产精品成人免费| 久久久久久久久久久久久女国产乱| 人人爽香蕉精品| 91免费观看国产| 一区二区三区中文免费| 久久99热狠狠色一区二区| 麻豆精品视频在线观看| 精东粉嫩av免费一区二区三区| 成人a免费在线看| 成人午夜免费视频| 天天做天天爱综合| 欧美黑人性视频| 日韩欧美在线不卡| 激情欧美丁香| 自拍偷拍视频在线| 欧美精品在线播放| 午夜精品一区在线观看| 免费一级片91| 粉嫩的18在线观看极品精品| 国产在线视频网| 青青视频在线播放| 亚洲一区二区三区在线视频| 亚洲免费精彩视频| 久久性感美女视频| 天天躁日日躁成人字幕aⅴ| 亚洲精品乱码久久久久久金桔影视| 91香蕉视频黄| 99亚洲精品视频| 一区二区三区日韩视频| 91制片厂毛片| 国产精品v日韩精品v在线观看| 久久久精品在线观看| 在线观看国产一区二区| 99久久99精品久久久久久| 欧美日本久久| 草草视频在线一区二区| 性网站在线观看|