
0人評分過此書
Java SE 17 技術手冊
內容簡介:‧基於Java 17 LTS版本!涵蓋Java 15至17新特性
‧增加HTTP Client API介紹
‧作者十幾年實務教育訓練中,匯整學員遇到的觀念、實作、應用等問題的經驗集合。
‧必要時從Java SE API的原始碼分析,了解各語法在Java SE API中如何應用。
‧涵蓋Java 15至17的文字區塊、模式比對、record/sealed等新特性。
‧建議練習的範例提供Lab檔案,更能掌握練習重點。
‧IDE操作為本書教學內容之一,更能與實務結合。
‧增加HTTP Client API介紹
‧作者十幾年實務教育訓練中,匯整學員遇到的觀念、實作、應用等問題的經驗集合。
‧必要時從Java SE API的原始碼分析,了解各語法在Java SE API中如何應用。
‧涵蓋Java 15至17的文字區塊、模式比對、record/sealed等新特性。
‧建議練習的範例提供Lab檔案,更能掌握練習重點。
‧IDE操作為本書教學內容之一,更能與實務結合。
- 序
- 導讀
-
1 Java平臺概論
-
1.1 Java不只是語言
-
1.1.1 前世今生
-
1.1.2 三大平臺
-
1.1.3 JCP與JSR
-
1.1.4 Oracle JDK與OpenJDK
-
-
1.2 JVM/JRE/JDK
-
1.2.1 什麼是JVM?
-
1.2.2 JRE與JDK
-
1.2.3 下載、安裝JDK
-
1.2.4 認識JDK安裝內容
-
-
-
2 從JDK到IDE
-
2.1 從“Hello,World”開始
-
2.1.1 撰寫Java原始碼
-
2.1.2 PATH是什麼?
-
2.1.3 JVM(java)與classpath
-
2.1.4 編譯器(javac)與classpath
-
-
2.2 管理原始碼與位元碼檔案
-
2.2.1 編譯器(javac)與sourcepath
-
2.2.2 使用package管理類別
-
2.2.3 使用import偷懶
-
-
2.3 初探模組平臺系統
-
2.3.1 JVM(java)與module-path
-
2.3.2 編譯器(javac)與module-path
-
2.3.3 編譯器(javac)與module-source-path
-
-
2.4 使用IDE
-
2.4.1 IDE專案管理基礎
-
2.4.2 使用了哪個JRE?
-
2.4.3 類別檔案版本
-
-
-
3 基礎語法
-
3.1 型態、變數與運算子
-
3.1.1 型態
-
3.1.2 變數
-
3.1.3 運算子
-
3.1.4 掌握型態
-
-
3.2 流程控制
-
3.2.1 if..else條件式
-
3.2.2 switch條件式
-
3.2.3 for迴圈
-
3.2.4 while迴圈
-
3.2.5 break、continue
-
-
課後練習
-
-
4 認識物件
-
4.1 類別與實例
-
4.1.1 定義類別
-
4.1.2 使用標準類別
-
4.1.3 物件指定與相等性
-
-
4.2 基本型態包裹器
-
4.2.1 包裹基本型態
-
4.2.2 自動裝箱、拆箱
-
4.2.3 自動裝箱、拆箱的內幕
-
-
4.3 陣列物件
-
4.3.1 陣列基礎
-
4.3.2 操作陣列物件
-
4.3.3 陣列複製
-
-
4.4 字串物件
-
4.4.1 字串基礎
-
4.4.2 字串特性
-
4.4.3 文字區塊
-
4.4.4 原始檔編碼
-
4.4.5 Java與Unicode
-
-
4.5 查詢Java API文件
-
課後練習
-
-
5 物件封裝
-
5.1 何謂封裝?
-
5.1.1 封裝物件初始流程
-
5.1.2 封裝物件操作流程
-
5.1.3 封裝物件內部資料
-
-
5.2 類別語法細節
-
5.2.1 public權限修飾
-
5.2.2 關於建構式
-
5.2.3 建構式與方法重載
-
5.2.4 使用this
-
5.2.5 static類別成員
-
5.2.6 不定長度引數
-
5.2.7 內部類別
-
-
課後練習
-
-
6 繼承與多型
-
6.1 何謂繼承?
-
6.1.1 繼承共同行為與實作
-
6.1.2 多型與is-a
-
6.1.3 重新定義實作
-
6.1.4 抽象方法、抽象類別
-
-
6.2 繼承語法細節
-
6.2.1 protected成員
-
6.2.2 重新定義的細節
-
6.2.3 再看建構式
-
6.2.4 再看final關鍵字
-
6.2.5 java.lang.Object
-
6.2.6 關於垃圾收集
-
6.2.7 再看抽象類別
-
-
課後練習
-
-
7 介面與多型
-
7.1 何謂介面?
-
7.1.1 使用介面定義行為
-
7.1.2 行為的多型
-
7.1.3 解決需求變化
-
-
7.2 介面語法細節
-
7.2.1 介面的預設
-
7.2.2 匿名內部類別
-
7.2.3 使用enum列舉常數
-
-
課後練習
-
-
8 例外處理
-
8.1 語法與繼承架構
-
8.1.1 使用try、catch
-
8.1.2 例外繼承架構
-
8.1.3 要抓還是要拋?
-
8.1.4 貼心還是造成麻煩?
-
8.1.5 認識堆疊追蹤
-
8.1.6 關於assert
-
-
8.2 例外與資源管理
-
8.2.1 使用finally
-
8.2.2 自動嘗試關閉資源
-
8.2.3 java.lang.AutoCloseable介面
-
-
課後練習
-
-
9 Collection與Map
-
9.1 使用Collection收集物件
-
9.1.1 認識Collection架構
-
9.1.2 具有索引的List
-
9.1.3 內容不重複的Set
-
9.1.4 支援佇列操作的Queue
-
9.1.5 使用泛型
-
9.1.6 簡介Lambda表示式
-
9.1.7 Iterable與Iterator
-
9.1.8 Comparable與Comparator
-
-
9.2 鍵值對應的Map
-
9.2.1 常用Map實作類別
-
9.2.2 走訪Map鍵值
-
-
9.3 不可變的Collection與Map
-
9.3.1 淺談不可變特性
-
9.3.2 Collections的unmodifiableXXX()方法
-
9.3.3 List、Set、Map的of()方法
-
-
課後練習
-
-
10 輸入輸出
-
10.1 InputStream與OutputStream
-
10.1.1 串流設計觀念
-
10.1.2 串流繼承架構
-
10.1.3 串流處理裝飾器
-
-
10.2 字元處理類別
-
10.2.1 Reader與Writer繼承架構
-
10.2.2 字元處理裝飾器
-
-
課後練習
-
-
11 執行緒與並行API
-
11.1 執行緒
-
11.1.1 簡介執行緒
-
11.1.2 Thread與Runnable
-
11.1.3 執行緒生命週期
-
11.1.4 關於ThreadGroup
-
11.1.5 synchronized與volatile
-
11.1.6 等待與通知
-
-
11.2 並行API
-
11.2.1 Lock、ReadWriteLock與Condition
-
11.2.2 使用Executor
-
11.2.3 簡介並行Collection
-
-
課後練習
-
-
12 Lambda
-
12.1 認識Lambda語法
-
12.1.1 Lambda語法概覽
-
12.1.2 Lambda表示式與函式介面
-
12.1.3 Lambda遇上this與final
-
12.1.4 方法與建構式參考
-
12.1.5 介面預設方法
-
-
12.2 Functional與Stream API
-
12.2.1 使用Optional取代null
-
12.2.2 標準API的函式介面
-
12.2.3 使用Stream進行管線操作
-
12.2.4 進行Stream的reduce與collect
-
12.2.5 關於flatMap()方法
-
12.2.6 Stream相關API
-
12.2.7 活用Optional與Stream
-
-
12.3 Lambda、平行化與非同步處理
-
12.3.1 Stream與平行化
-
12.3.2 Arrays與平行化
-
12.3.3 CompletableFuture非同步處理
-
-
課後練習
-
-
13 時間與日期
-
13.1 認識時間與日期
-
13.1.1 時間的度量
-
13.1.2 年曆簡介
-
13.1.3 認識時區
-
-
13.2 認識Date與Calendar
-
13.2.1 時間軸上瞬間的Date
-
13.2.2 處理時間日期的Calendar
-
-
13.3 新時間日期API
-
13.3.1 機器時間觀點的API
-
13.3.2 人類時間觀點的API
-
13.3.3 對時間的運算
-
13.3.4 年曆系統設計
-
-
課後練習
-
-
14 NIO與NIO2
-
14.1 認識NIO
-
14.1.1 NIO概觀
-
14.1.2 Channel架構與操作
-
14.1.3 Buffer架構與操作
-
-
14.2 NIO2檔案系統
-
14.2.1 NIO2架構
-
14.2.2 操作路徑
-
14.2.3 屬性讀取與設定
-
14.2.4 操作檔案與資料夾
-
14.2.5 讀取、走訪資料夾
-
14.2.6 過濾、搜尋檔案
-
-
課後練習
-
-
15 通用API
-
15.1 日誌
-
15.1.1 簡介日誌API
-
15.1.2 指定日誌層級
-
15.1.3 使用Handler與Formatter
-
15.1.4 自訂Handler、Formatter與Filter
-
15.1.5 使用logging.properties
-
-
15.2 HTTP Client API
-
15.2.1 淺談URI與HTTP
-
15.2.2 入門HTTP Client API
-
15.2.3 發送請求資訊
-
-
15.3 規則表示式
-
15.3.1 簡介規則表示式
-
15.3.2 quote()與quoteReplacement()
-
15.3.3 Pattern與Matcher
-
15.3.4 Unicode規則表示式
-
-
15.4 處理數字
-
15.4.1 使用BigInteger
-
15.4.2 使用BigDecimal
-
15.4.3 數字的格式化
-
-
15.5 再談堆疊追蹤
-
15.5.1 取得StackTraceElement
-
15.5.2 Stack-Walking API
-
-
課後練習
-
-
16 整合資料庫
-
16.1 JDBC入門
-
16.1.1 簡介JDBC
-
16.1.2 連接資料庫
-
16.1.3 使用Statement、ResultSet
-
16.1.4 使用PreparedStatement、CallableStatement
-
-
16.2 JDBC進階
-
16.2.1 使用DataSource取得連線
-
16.2.2 使用ResultSet捲動、更新資料
-
16.2.3 批次更新
-
16.2.4 Blob與Clob
-
16.2.5 簡介交易
-
16.2.6 簡介metadata
-
-
課後練習
-
-
17 反射與類別載入器
-
17.1 運用反射
-
17.1.1 Class與.class檔案
-
17.1.2 使用Class.forName()
-
17.1.3 從Class建立物件
-
17.1.4 從Class獲得資訊
-
17.1.5 操作物件方法與成員
-
17.1.6 動態代理
-
17.1.7 當反射遇上模組
-
17.1.8 使用ServiceLoader
-
-
17.2 瞭解類別載入器
-
17.2.1 類別載入器階層
-
17.2.2 建立ClassLoader實例
-
-
課後練習
-
-
18 自訂泛型、列舉與標註
-
18.1 自訂泛型
-
18.1.1 使用extends與?
-
18.1.2 使用super與?
-
-
18.2 自訂列舉
-
18.2.1 成員的細節
-
18.2.2 建構式、方法與介面
-
-
18.3 record與sealed
-
18.3.1 深入record類別
-
18.3.2 sealed的型態階層
-
-
18.4 關於標註
-
18.4.1 常用標準標註
-
18.4.2 自訂標註型態
-
18.4.3 執行時期讀取標註資訊
-
-
課後練習
-
-
19 深入模組化
-
19.1 運用模組
-
19.1.1 模組的種類
-
19.1.2 requires、exports與opens細節
-
19.1.3 修補模組
-
19.1.4 放寬模組封裝與依賴
-
-
19.2 模組API
-
19.2.1 使用Module
-
19.2.2 使用ModuleDescriptor
-
19.2.3 淺談ModuleLayer
-
-
19.3 打包模組
-
19.3.1 使用jar打包
-
19.3.2 使用jmod打包
-
19.3.3 使用jlink建立執行時期映像
-
-
-
A 如何使用本書專案
-
A.1 專案環境配置
-
A.2 匯入專案
-
- 出版地 : 臺灣
- 語言 : 繁體中文
評分與評論
請登入後再留言與評分