3dwoo大學簡體電腦書店
深入理解Java核心技術:寫給Java工程師的干貨筆記(基礎篇)
( 簡體 字)
作者:張洪亮(@Hollis)類別:1. -> 程式設計 -> JAVA -> Java
出版社:電子工業出版社深入理解Java核心技術:寫給Java工程師的干貨筆記(基礎篇) 3dWoo書號: 55812
詢問書籍請說出此書號!
缺書
NT售價: 690
出版日:4/1/2022
頁數:504
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787121432606 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1章 什么是面向對象
1.1 面向過程與面向對象
1.2 面向對象的三大基本特征
1.3 面向對象的五大基本原則
第2章 面向對象的核心概念
2.1 重載和重寫
2.2 多態
2.3 繼承與實現
2.4 多繼承
2.5 組合與繼承
2.6 構造函數
2.7 變量
第3章 Java對象
3.1 Object類
3.2 JavaBean
3.3 equals和hashCode的關系
3.4 對象的clone方法
第4章 平臺無關性
4.1 什么是平臺無關性
4.2 JVM支持的語言
第5章 值傳遞
5.1 什么是值傳遞
5.2 Java中的值傳遞
第6章 基本數據類型
6.1 基本類型
6.2 浮點數
6.3 Java中負數的絕對值并不一定是正數
第7章 自動拆裝箱
7.1 自動拆箱
7.2 緩存
7.3 基本類型和包裝類怎么選
第8章 字符串
8.1 字符串的不可變性
8.2 JDK6和JDK7中substring的原理與區別
8.3 replace、replaceAll和replaceFirst的區別
8.4 String對“+”的重載
8.5 字符串拼接的幾種方式和區別
8.6 StringJoiner
8.7 從字符串中刪除空格的多種方式
8.8 switch對String的支持
8.9 字符串池
8.10 Class常量池
8.11 字面量是什么時候存入字符串池的
8.12 intern
8.13 String有沒有長度限制
第9章 異常
9.1 Java的異常體系
9.2 和異常有關的關鍵字
9.3 異常鏈
9.4 異常處理的最佳實踐
9.5 自定義異常
9.6 try-with-resources
9.7 finally是在什么時候執行的
第10章 集合類
10.1 Java的集合體系
10.2 如何對集合進行遍歷
10.3 ArrayList、LinkedList和Vector之間的區別
10.4 SynchronizedList和Vector有什么區別
10.5 為什么ArrayList的subList結果不能轉換成ArrayList
10.6 HashSet、LinkedHashSet和TreeSet之間的區別
10.7 HashMap、Hashtable和ConcurrentHashMap之間的區別
10.8 不要使用雙括號語法初始化集合
10.9 同步容器的所有操作一定是線程安全的嗎
10.10 HashMap的數據結構
10.11 HashMap的size和capacity有什么區別
10.12 HashMap的擴容機制
10.13 HashMap的loadFactor和threshold
10.14 為什么建議集合初始化時指定容量大小
10.15 HashMap的初始容量設置為多少合適
10.16 HashMap的hash()方法
10.17 為什么HashMap的默認容量設置成16
10.18 為什么HashMap的默認負載因子設置成0.75
10.19 HashMap的線程安全問題
10.20 為什么不能在foreach循環里對集合中的元素進行remove/add操作
10.21 如何在遍歷的同時刪除ArrayList中的元素
10.22 什么是fail-fast和fail-safe
10.23 為什么Java 8中的Map引入了紅黑樹
10.24 為什么將HashMap轉換成紅黑樹的閾值設置為8
10.25 Java 8中Stream的相關用法
10.26 Java中的并發容器
第11章 反射
11.1 反射的概念及作用
11.2 反射是如何破壞單例模式的
11.3 利用反射與工廠模式實現Spring IoC
第12章 序列化
12.1 序列化和反序列化
12.2 什么是transient
12.3 序列化底層原理
12.4 為什么不能隨便更改serialVersionUID
12.5 序列化如何破壞單例模式
12.6 使用序列化實現深拷貝
12.7 Apache-Cmmons-Collections的反序列化漏洞
12.8 fastjson的反序列化漏洞
12.9 JavaBean屬性名對序列化的影響
第13章 枚舉
13.1 枚舉的用法
13.2 枚舉是如何實現的
13.3 如何比較Java中的枚舉
13.4 switch對枚舉的支持
13.5 如何實現枚舉的序列化
13.6 為什么說枚舉是實現單例最好的方式
13.7 為什么接口返回值不能使用枚舉類型
第14章 I/O
14.1 什么是I/O流,如何分類
14.2 同步/異步與阻塞/非阻塞
14.3 Linux的五種I/O模型
14.4 BIO、NIO和AIO
第15章 動態代理
15.1 靜態代理與動態代理
15.2 動態代理的幾種實現方式
第16章 注解
16.1 注解及注解的使用
16.2 Java中的5個元注解
16.3 注解的繼承與組合
16.4 注解與反射的結合
16.5 日常開發中的常用注解
16.6 不要過度依賴注解
第17章 泛型
17.1 什么是泛型
17.2 什么是類型擦除
17.3 在泛型為String的List中存放Integer對象
17.4 泛型與橋接方法
17.5 泛型會帶來哪些問題
17.6 泛型中K、T、V、E、?等的含義
17.7 泛型中的限定通配符和非限定通配符
17.8 泛型的PECS原則
第18章 時間處理
18.1 什么是時區
18.2 時間戳
18.3 幾種常見時間的含義和關系
18.4 SimpleDateFormat的線程安全性問題
18.5 Java 8中的時間處理
18.6 為什么日期格式化時使用y表示年,而不能用Y
第19章 編碼方式
19.1 什么是ASCII和Unicode
19.2 有了Unicode為什么還需要UTF-8
19.3 有了UTF-8為什么還需要GBK
19.4 為什么會存在亂碼
第20章 語法糖
20.1 什么是語法糖,如何解糖
20.2 解糖:方法變長參數
20.3 解糖:內部類
20.4 解糖:條件編譯
20.5 解糖:斷言
20.6 解糖:數值字面量
20.7 解糖:Lambda表達式
20.8 警惕語法糖
第21章 BigDecimal
21.1 什么是BigDecimal
21.2 為什么不能直接使用double創建一個BigDecimal
21.3 為什么不能使用BigDecimal的equals方法比較大小
第22章 常用的Java工具庫
22.1 Apache Commons
22.2 各類BeanUtils工具的性能對比
22.3 MapStruct
22.4 BeanUtils與深/淺拷貝
22.5 Guava
22.6 Lombok
第23章 Java新版本特性
23.1 Java 8:函數式編程
23.2 Java 8:接口的默認方法
23.3 Java 9:模塊化技術
23.4 Java 10:本地變量類型推斷
23.5 Java 11:增強var
23.6 Java 12:switch表達式
23.7 Java 13:text block
23.8 Java 14:更有價值的NullPointerException
23.9 Java 14:record類型
23.10 Java 15:封閉類
23.11 Java 16:instanceof模式匹配
23.12 Java 17:switch模式匹配
本書主要聚焦于Java開發者必備的Java核心基礎知識。全書共23章,主要內容包括面向對象、基礎數據類型、自動拆裝箱、字符串、集合類、反射、序列化、枚舉、I/O、動態代理、注解、泛型、時間處理、編碼方式、語法糖、BigDecimal、常用工具庫及Java新版本特性等,比較全面地覆蓋了Java開發者日常工作中用到的大部分基礎知識。本書既適合讀者進行體系化的學習,也適合讀者查缺補漏,將以往所學的知識點連成線,進而構建并完善自己的知識體系。
本書緣起
2015年,我剛畢業時,為了可以更好地學習Java相關知識,更方便地查缺補漏,我整理了一份自己準備學習的Java相關知識的目錄。隨著自身技術能力的提升,我也一直在不斷地完善這份知識目錄。
最開始,我把它命名為《Java工程師成神之路》,之所以起這個名字,是因為我覺得整個體系太過龐大,龐大到如果能把它完全掌握,就是當之無愧的“大神”。這個名字也寄托了我對自己的無限期待。
最開始《Java工程師成神之路》只是一些知識點組成的目錄,或者說是一份學習路徑總結。很多人通過這個路徑,可以知道自己處于什么樣的階段,可以快速地找到自己有哪些知識點是不了解的。
后來在2019年,在很多讀者的建議下,我把《Java工程師成神之路》開源了,并且開始逐步完善其中的知識點,讓它不再是一份目錄,而是一個完整的知識體系。
在2020年,阿里云開發者社區的朋友找到我,我和他們聯合把之前整理的這份知識體系文章做成了一本電子書。電子書一經問世,就一直在阿里云開發者社區霸榜。這本電子書還因此獲得了阿里云頒發的“最受開發者歡迎的電子書獎”獎項!
截至2022年3月初,《Java工程師成神之路》在GitHub上的開源版本已經收獲了22.4k個Star,根據其制作出來的GitHub Page和Gitee Page共收獲了超過50萬的訪問次數,總訪客數達40多萬。其相關電子書在阿里云開發者社區的下載榜中排名前三,共收獲40萬次閱讀,6萬多次下載。
在不知不覺中,我歷時6年打造的“成神之路”,影響了幾十萬名Java開發者。很多人可能不知道Hollis是誰,但卻知道這份《Java工程師成神之路》。
后來,在很多讀者的鼓勵下,我終于決定把它出版成書。但是因為內容實在是太多了,所以目前大家看到的這一本只是把其中“基礎篇”的內容做了整理。
雖然這本書的大綱我早就整理好了,而且之前發行過電子版,我以為紙質書的出版會比較順利,但是事情沒那么簡單。偏偏我又是一個完美主義者,所以,在原來五年積累的很多文章的基礎上,我又足足改了將近1年的時間。現在這個版本和之前開源的版本相比,大概重寫了其中80%的內容。整體結構上比開源的版本更加合理,內容也比開源的版本更加豐富。
本書特色
為了方便讀者閱讀和理解,除了前兩章,本書盡量摒棄了太過枯燥的概念性描述,也避免堆砌大篇幅的代碼,試圖通過舉例、比喻、引用等方式把Java體系中的很多原理知識講解清楚。
因為Java體系中的很多知識點都是相關聯的,所以本書在提到其他知識點時,為了方便讀者進行關聯性學習,會標注相關章節和內容提要。
本書更加注重對原理的解讀,很多語法的概念介紹及使用方式并不是本書的重點。所以,本書中大部分內容均是Java開發者需要重點關注的一些知識點,很多知識點的總結均來源于日常開發中遇到的對各種線上問題的排查與總結。
勘誤和支持
因個人能力有限,書中難免有疏漏之處,懇請廣大讀者批評指正。
如果讀者在閱讀的過程中遇到任何表述不清、內容錯誤及影響學習體驗的問題,都可以通過以下方式反饋給我,我和本書編輯一定會在第一時間進行改正。
(1)在開源項目toBeTopJavaer中提交勘誤Issue。
(2)我的個人公眾號“Hollis”的底部菜單欄設置了糾錯入口,讀者可以在其中反饋書中的問題。
請提出修改意見的讀者朋友同時附上頁碼、章節序號,以便我們進行核對,謝謝大家。
配套資源
本書是《Java工程師成神之路》系列的第一本,隨書贈送了一份《Java工程師成神之路》思維導圖。Java開發者可以通過這份思維導圖對所學知識進行查缺補漏,完善自己的知識體系,愿所有讀者都能早日成為大神。
如果想獲得本書思維導圖的電子原版,請通過以下方式領取:
在我的個人公眾號“Hollis”的對話中,回復“成神導圖”即可。
致謝
感謝所有的讀者朋友,包括所有不認識我但是看過我的文章的朋友們,感謝大家對我的支持與鼓勵。
感謝所有在我的開源項目toBeTopJavaer中提交Issue和“PR”的朋友們,感謝你們對本書的認可與幫助。
感謝電子工業出版社的工作人員,特別是本書編輯陳曉猛老師,正是你們的認真負責,才讓本書可以高質量地呈現給所有期待的讀者們。
感謝我的愛人——楊婉鷺女士,感謝你在我創作本書的過程中對我的包容和理解。
感謝我的父母——張奎先生和王洪賢女士,感謝你們這么多年來對我的默默付出與支持。
謹以此書,獻給所有在我成長道路上幫助過我的親人、師長、同事、朋友、讀者,感謝你們對我的提攜與幫助!
本書全部稿費將以Hollis及其所有讀者的名義用于公益事業,具體細節我會在我的公眾號上公布,歡迎監督。

張洪亮(Hollis)
pagetop