買這商品的人也買了...
-
$420$332 -
$940$700 -
$680$537 -
$580$452 -
$550$495 -
$550$429 -
$403程序員的三門課:技術精進、架構修煉、管理探秘
-
$560$437 -
$588$559 -
$454架構師的自我修煉:技術、架構和未來
-
$880$748 -
$704Redis 核心原理與實踐
-
$800$624 -
$780$616 -
$551Spring Boot 趣味實戰課
-
$894$849 -
$658深入理解高並發編程:核心原理與案例實戰
-
$650$507 -
$505持續架構實踐:敏捷和 DevOps 時代下的軟件架構
-
$469Java超能學習手冊
-
$654$621 -
$534$507 -
$534$507 -
$611Java開發坑點解析:從根因分析到最佳實踐
-
$510Redis 高手心法
相關主題
商品描述
本書主要聚焦於Java開發者必備的Java核心基礎知識。全書共23章,主要內容包括面向對象、基礎數據類型、自動拆裝箱、字符串、集合類、反射、序列化、枚舉、I/O、動態代理、註解、泛型、時間處理、編碼方式、語法糖、BigDecimal、常用工具庫及Java新版本特性等,比較全面地覆蓋了Java開發者日常工作中用到的大部分基礎知識。本書既適合讀者進行體系化的學習,也適合讀者查缺補漏,將以往所學的知識點連成線,進而構建並完善自己的知識體系。
目錄大綱
目錄
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 Linu的五種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:tet block
23.8 Java 14:更有價值的NullPointerEception
23.9 Java 14:record類型
23.10 Java 15:封閉類
23.11 Java 16:instanceof模式匹配
23.12 Java 17:switch模式匹配