1. 程式人生 > >Java——書、原始碼、框架大全

Java——書、原始碼、框架大全

書單

《Java核心技術 卷I》

一直以來,這本書都被認為是面向Java程式設計師的經典教程和參考書,內容翔實、客觀準確,不拖泥帶水,與《Java程式設計思想》齊名。

推薦作為Java的入門書籍,記得這是當時入手的第一本書,愛護有加,畢竟貴啊。
在這裡插入圖片描述

《大話設計模式》

感受設計演變過程中所蘊含的大智慧,體會樂與怒的程式人生中值得回味的一幕幕。

推薦作為設計模式的入門書籍,裡面的實現的程式碼都是基於Java的,通過很生動的方式講解了23中設計模式,但是設計模式的思想和精髓,還是需要在平時專案中慢慢領會以及運用。
在這裡插入圖片描述

《深入剖析Tomcat》

深入剖析Tomcat4和Tomcat5中的每個元件,並揭示其內部工作原理,從最基本的HTTP請求開始,直至使用JMX技術管理Tomcat中的應用程式,逐一剖析Tomcat的基本功能模組,並配以示例程式碼,使讀者可以逐步實現自己的Web伺服器。

當時也不知道為什麼會買這本書,功力不足,啃了很多遍也沒有啃完,似乎已經找不到這本書了…
在這裡插入圖片描述

《深入瞭解Java虛擬機器:JVM高階特性與最佳實踐》

周志明老師的第一版書,JVM入門經典之作,圍繞記憶體管理、執行子系統、程式編譯與優化、高效併發等核心主題對JVM進行了全面而深入的分析,深刻揭示了JVM的工作原理。

這是入手的第一本關於JVM的書籍,當時看了前面幾章節,感覺自己在學習幾年的Java白學了…前前後後啃了很多遍,因為看完會忘記
在這裡插入圖片描述

《深入瞭解Java虛擬機器:JVM高階特性與最佳實踐(第二版)》

第二版,又入手了。
在這裡插入圖片描述

《Effective Java中文版(第2版)》

你是否正在尋找一本能夠更加深入地瞭解Java程式語言的書,以便編寫出更清晰、更正確、更健壯且更易於重用的程式碼。不用找了!本書為我們帶來了共78條程式設計師必備的經驗法則,針對你每天都會遇到的程式設計問題提出了有效、實用的解決方案。

無腦推薦吧,因為看完之後真的挺好。

在這裡插入圖片描述
《重構 改善既有程式碼的設計》

凝聚了軟體開發社群專家多年摸索而獲得的寶貴經驗,擁有不因時光流逝而磨滅的價值。今天,無論是重構本身,業界對重構的理解,還是開發工具對重構的支援力度,都與本書出版時不可同日而語,但書中所蘊涵的意味和精華,依然值得反覆咀嚼,而且往往能夠常讀常新。

雖然不是每一條都適合自己,但總有指導意義的,選擇喜歡的方式,開始愉快的重構吧,因為重構可以讓你輕鬆應對各種需求變更。

在這裡插入圖片描述
《Java併發程式設計的藝術》

從JDK原始碼、JVM、CPU等多角度全面剖析和講解Java併發程式設計的框架、原理和核心技術,採用循序漸進的講解方式,從併發程式設計的底層實現機制入手,逐步介紹了在設計Java併發程式時各種重要的技術、設計模式與應用,同時輔以豐富的示例程式碼,使得開發人員能夠更快地領悟Java併發程式設計的要領,圍繞著Java平臺的基礎併發功能快速地構建大規模的併發應用程式。

說實在的,這本書當時看得我高潮迭起,原來了解併發的底層實現原理之後可以這麼痛快,收穫良多。
在這裡插入圖片描述

《Java併發程式設計實戰》

深入淺出地介紹了Java執行緒和併發,從併發性和執行緒安全性的基本概念出發,介紹瞭如何使用類庫提供的基本併發構建塊,如何將小的執行緒安全類組合成更大的執行緒安全類,如何利用執行緒來提高併發應用程式的吞吐量,如何識別可並行執行的任務,如何提高單執行緒子系統的響應性,如何確保併發程式執行預期任務,如何提高併發程式碼的效能和可伸縮性等內容,最後介紹了一些高階主題,如顯式鎖、原子變數、非阻塞演算法以及如何開發自定義的同步工具類。

看完《Java併發程式設計的藝術》之後,立馬又入手了此書,真的是相見恨晚。
在這裡插入圖片描述

《大型網站系統與Java中介軟體實踐》
在這裡插入圖片描述

圍繞大型網站和支撐大型網站架構的 Java 中介軟體的實踐展開介紹,從分散式系統的知識切入,讓讀者對分散式系統有基本的瞭解;然後介紹大型網站隨著資料量、訪問量增長而發生的架構變遷;

對於沒有大型網站系統開發經驗的同學來說,這確實是個福利,可以稍微的瞭解大型網站架構變遷過程中的較為通用的問題和解法,並瞭解構建支撐大型網站的 Java 中介軟體的實踐經驗。

《大型分散式網站架構設計與實踐》

和《大型網站系統與Java中介軟體實踐》類似吧,我覺得。
在這裡插入圖片描述

《Java效能權威指南》

市面上介紹Java的書有很多,但專注於Java效能的並不多,能遊刃有餘地展示Java效能優化難點的更是鳳毛麟角,本書即是其中之一。通過使用JVM和Java平臺,以及Java語言和應用程式介面,本書詳盡講解了Java效能調優的相關知識,幫助讀者深入理解Java平臺效能的各個方面,使程式如虎添翼。

說實在的,看這本書,前前後後翻了很多次也沒翻完,慢慢來吧,畢竟效能優化這條路也是很漫長的。
在這裡插入圖片描述

《HotSpot實戰》

“蚓無爪牙之利,筋骨之強,上食埃土,下飲黃泉,用心一也。蟹六跪而二螯,非蛇蟮之穴無可寄託者,用心躁也”。對於技術人員來說,如果長期忽略自身技術的根基而去一昧地追求高層框架技術,這無疑是捨本求末的做法。

我為什麼會買這本書?前段時間手撕HotSpot的大部分原始碼,包括虛擬機器啟動,虛擬機器引數解析,類載入,物件建立過程,YGC和FGC的實現,過程很痛苦,後來發現了此書,就入手看看和自己的理解是否有出入,以免一條道走到黑。
在這裡插入圖片描述

《垃圾回收的演算法與實現》

Ruby之父松本行弘推薦:上古傳承之魔法,徹底揭開垃圾回收的祕密!

此書很新,在我手撕了HotSpot的GC部分原始碼之後,覺得可以入手看看大神是如何理解垃圾回收演算法的。
在這裡插入圖片描述

《Lucene實戰(第2版)》

適合於已具有一定java程式設計基本的讀者,以及希望能夠把強大的搜尋功能新增到自己的應用程式中的開發人員

當時因為專案需要,才入手了此書。
在這裡插入圖片描述

《程式設計珠璣》

歷史上偉大的電腦科學著作之一

融深邃思想、實戰技術與趣味軼事於一爐的奇書

帶你真正領略電腦科學之美

只有在興趣來臨時翻兩頁…我不會說到現在也沒翻完(所以可以不用入吧)
在這裡插入圖片描述

《億級流量網站架構核心技術 跟開濤學搭建高可用高併發系統》

總結並梳理了億級流量網站高可用和高併發原則,通過例項詳細介紹瞭如何落地這些原則。本書分為四部分:概述、高可用原則、高併發原則、案例實戰。從負載均衡、限流、降級、隔離、超時與重試、回滾機制、壓測與預案、快取、池化、非同步化、擴容、佇列等多方面詳細介紹了億級流量網站的架構核心技術,讓讀者看後能快速運用到實踐專案中。
在這裡插入圖片描述

《Java效能優化權威指南》

本書主要展示瞭如何在當今先進的多核硬體和複雜的作業系統環境下,系統且主動地提高Java 效能。本書對Charlie Hunt 和Binu John 的經典圖書Java Performance 進行延伸,提供了兩個前所未有的、強大的Java 平臺創新細節:Garbage First(G1)垃圾收集器和HotSpot 虛擬機器服務代理。閱讀本書,你就可以在任何情況下從JDK8 或9 中發揮Java 的*大效能。

這本書確實也是蠻驚豔的,外國人寫的,國人翻譯,整體水平還算不錯的。
在這裡插入圖片描述

《揭祕Java虛擬機器:JVM設計原理與實現》

本書通過深入結合HotSpot原始碼來解釋Java虛擬機器工作機理的書籍,概念是一切知識結構的基石,通過閱讀本書,可以瞭解和掌握Java虛擬機器的核心概念,可以在工作中更合理、更高效的排查、解決Java問題。

從Java、C/C++到彙編,一一解剖,知其然,知其所以然,還在看的一本書。
在這裡插入圖片描述

《深入理解JVM&G1 GC》

想了解G1演算法的同學可以入手一本,大部分的篇幅都在講G1收集器
在這裡插入圖片描述

原始碼

原始碼這種東西,看的快,忘的也快,最好的方法是學會整理,把資料整理成自己的知識。

好多人覺得JDK原始碼太多,無從下手,經常半途而非,以我的經驗來說,最好的方法是當你在專案中用到了某個類,可以利用空閒時間去研究,當然這是在感興趣的前提下,比如簡單ArrayList是如何實現的,StringBuilder和StringBuffer有什麼區別,HashMap的實現原理,帶著問題去分析,從簡單的類開始循序漸進,同時在分析過程中能夠用自己的語言整理出來,就像一開始我寫過關於ArrayList的文章《Java Collections Framework-ArrayList》,雖然內容很簡單,但也算是一種嘗試,至少可以寫出來了,不管效果如何,剩下的只剩堅持了,自己嘗試寫過之後,可以加深理解和記憶。

看原始碼的時候,可以給自己定幾個目標,畢竟一口吃不成胖子,只能慢慢的啃,路是走出來的,通過debug一步一步的走下去。

1、資料結構相關的類,如String、ArrayList,LinkedList,HashMap和ConcurrentHashMap等等。

2、執行緒併發相關的類,如Synchronized、ReentrantLock、ReadWriteLock、AQS和執行緒池的實現等。

如果一個類的實現很複雜,比如ConcurrentHashMap,就可以試著拆分成幾個模組進行分析

框架

曾有人說,你幹嘛那麼糾結於底層的實現,工作上又用不到了,有這時間還不如多看看框架之類的,我只能呵呵以對,框架固然重要,但是框架是會更新,會變的,而底層原理可以長久不衰,當你瞭解了一些JDK的底層實現,在閱讀框架原始碼時,可以更加的得心應手。

瀏覽至此的小夥伴們對於這篇文章有何見解呢?評論在下方吧!

胖胖愛學習愛分享,每日更新,期待你的關注,期待與你一起進步!