Java SE 17 技術手冊

    基於Java 17 LTS版本!涵蓋Java 15至17新特性

    收集中
    US$21.53

    內容簡介


    ‧基於Java 17 LTS版本!涵蓋Java 15至17新特性
    ‧增加HTTP Client API介紹
    ‧作者十幾年實務教育訓練中,匯整學員遇到的觀念、實作、應用等問題的經驗集合。
    ‧必要時從Java SE API的原始碼分析,了解各語法在Java SE API中如何應用。
    ‧涵蓋Java 15至17的文字區塊、模式比對、record/sealed等新特性。
    ‧建議練習的範例提供Lab檔案,更能掌握練習重點。
    ‧IDE操作為本書教學內容之一,更能與實務結合。

    作者介紹


    自由工作者,專長為技術寫作、翻譯與教育訓練。喜好研究程式語言、框架、社群,從中學習設計、典範及文化。閒暇之餘記錄所學,技術文件涵蓋C/C++、Java、Python、JavaScript、Haskell、OpenSCAD等領域,個人網站openhome.cc。

    目錄


    Chapter 1 Java 平臺概論
    Chapter 2 從JDK 到IDE
    Chapter 3 基礎語法
    Chapter 4 認識物件
    Chapter 5 物件封裝
    Chapter 6 繼承與多型
    Chapter 7 介面與多型
    Chapter 8 例外處理
    Chapter 9 Collection 與 Map
    Chapter 10 輸入輸出
    Chapter 11 執行緒與並行 API
    Chapter 12 Lambda
    Chapter 13 時間與日期
    Chapter 14 NIO 與 NIO2
    Chapter 15 通用 API
    Chapter 16 整合資料庫
    Chapter 17 反射與類別載入器
    Chapter 18 自訂泛型、列舉與標註
    Chapter 19 深入模組化
    Appendix A 如何使用本書專案

    章節目錄

    • 1-1
      封面頁
    • 1-2
      書名頁
    • 1-3
    • 1-4
      導讀
    • 1-5
      目錄
    • 1-6
      Ch01 Java 平臺概論
    • 1-7
      1.1 Java 不只是語言
    • 1-8
      1.1.1 前世今生
    • 1-9
      1.1.2 三大平臺
    • 1-10
      1.1.3 JCP 與JSR
    • 1-11
      1.1.4 Oracle JDK 與OpenJDK
    • 1-12
      1.2 JVM/JRE/JDK不要只用程式語言
    • 1-13
      1.2.1 什麼是JVM?
    • 1-14
      1.2.2 JRE 與JDK
    • 1-15
      1.2.3 下載、安裝JDK
    • 1-16
      1.2.4 認識JDK 安裝內容
    • 1-17
      Ch02 從JDK 到IDE
    • 1-18
      2.1 從 "Hello, World" 開始
    • 1-19
      2.1.1 撰寫Java 原始碼
    • 1-20
      2.1.2 PATH 是什麼?
    • 1-21
      2.1.3 JVM(java)與classpath
    • 1-22
      2.1.4 編譯器(javac)與classpath
    • 1-23
      2.2 管理原始碼與位元碼檔案
    • 1-24
      2.2.1 編譯器(javac)與sourcepath
    • 1-25
      2.2.2 使用package 管理類別
    • 1-26
      2.2.3 使用import 偷懶
    • 1-27
      2.3 初探模組平臺系統
    • 1-28
      2.3.1 JVM(java)與module-path
    • 1-29
      2.3.2 編譯器(javac)與module-path
    • 1-30
      2.3.3 編譯器(javac)與module-source-path
    • 1-31
      2.4 使用IDE
    • 1-32
      2.4.1 IDE 專案管理基礎
    • 1-33
      2.4.2 使用了哪個JRE?
    • 1-34
      2.4.3 類別檔案版本
    • 1-35
      Ch03 基礎語法
    • 1-36
      3.1 型態、變數與運算子
    • 1-37
      3.1.1 型態
    • 1-38
      3.1.2 變數
    • 1-39
      3.1.3 運算子
    • 1-40
      3.1.4 掌握型態
    • 1-41
      3.2 流程控制
    • 1-42
      3.2.1 if..else 條件式
    • 1-43
      3.2.2 switch 條件式
    • 1-44
      3.2.3 for 迴圈
    • 1-45
      3.2.4 while 迴圈
    • 1-46
      3.2.5 break、continue
    • 1-47
      課後練習
    • 1-48
      Ch04 認識物件
    • 1-49
      4.1 類別與實例
    • 1-50
      4.1.1 定義類別
    • 1-51
      4.1.2 使用標準類別
    • 1-52
      4.1.3 物件指定與相等性
    • 1-53
      4.2 基本型態包裹器
    • 1-54
      4.2.1 包裹基本型態
    • 1-55
      4.2.2 自動裝箱、拆箱
    • 1-56
      4.2.3 自動裝箱、拆箱的內幕
    • 1-57
      4.3 陣列物件
    • 1-58
      4.3.1 陣列基礎
    • 1-59
      4.3.2 操作陣列物件
    • 1-60
      4.3.3 陣列複製
    • 1-61
      4.4 字串物件
    • 1-62
      4.4.1 字串基礎
    • 1-63
      4.4.2 字串特性
    • 1-64
      4.4.3 文字區塊
    • 1-65
      4.4.4 原始檔編碼
    • 1-66
      4.4.5 Java 與Unicode
    • 1-67
      4.5 查詢Java API 文件
    • 1-68
      課後練習
    • 1-69
      Ch05 物件封裝
    • 1-70
      5.1 何謂封裝?
    • 1-71
      5.1.1 封裝物件初始流程
    • 1-72
      5.1.2 封裝物件操作流程
    • 1-73
      5.1.3 封裝物件內部資料
    • 1-74
      5.2 類別語法細節
    • 1-75
      5.2.1 public 權限修飾
    • 1-76
      5.2.2 關於建構式
    • 1-77
      5.2.3 建構式與方法重載
    • 1-78
      5.2.4 使用this
    • 1-79
      5.2.5 static 類別成員
    • 1-80
      5.2.6 不定長度引數
    • 1-81
      5.2.7 內部類別
    • 1-82
      課後練習
    • 1-83
      Ch06 繼承與多型
    • 1-84
      6.1 何謂繼承?
    • 1-85
      6.1.1 繼承共同行為與實作
    • 1-86
      6.1.2 多型與is-a
    • 1-87
      6.1.3 重新定義實作
    • 1-88
      6.1.4 抽象方法、抽象類別
    • 1-89
      6.2 繼承語法細節
    • 1-90
      6.2.1 protected 成員
    • 1-91
      6.2.2 重新定義的細節
    • 1-92
      6.2.3 再看建構式
    • 1-93
      6.2.4 再看final 關鍵字
    • 1-94
      6.2.5 java.lang.Object
    • 1-95
      6.2.6 關於垃圾收集
    • 1-96
      6.2.7 再看抽象類別
    • 1-97
      課後練習
    • 1-98
      Ch07 介面與多型
    • 1-99
      7.1 何謂介面?
    • 1-100
      7.1.1 使用介面定義行為
    • 1-101
      7.1.2 行為的多型
    • 1-102
      7.1.3 解決需求變化
    • 1-103
      7.2 介面語法細節
    • 1-104
      7.2.1 介面的預設
    • 1-105
      7.2.2 匿名內部類別
    • 1-106
      7.2.3 使用enum 列舉常數
    • 1-107
      課後練習
    • 1-108
      Ch08 例外處理
    • 1-109
      8.1 語法與繼承架構
    • 1-110
      8.1.1 使用try、catch
    • 1-111
      8.1.2 例外繼承架構
    • 1-112
      8.1.3 要抓還是要拋?
    • 1-113
      8.1.4 貼心還是造成麻煩?
    • 1-114
      8.1.5 認識堆疊追蹤
    • 1-115
      8.1.6 關於assert
    • 1-116
      8.2 例外與資源管理
    • 1-117
      8.2.1 使用finally
    • 1-118
      8.2.2 自動嘗試關閉資源
    • 1-119
      8.2.3 java.lang.AutoCloseable 介面
    • 1-120
      課後練習
    • 1-121
      Ch09 Collection 與Map
    • 1-122
      9.1 使用Collection 收集物件
    • 1-123
      9.1.1 認識Collection 架構
    • 1-124
      9.1.2 具有索引的List
    • 1-125
      9.1.3 內容不重複的Set
    • 1-126
      9.1.4 支援佇列操作的Queue
    • 1-127
      9.1.5 使用泛型
    • 1-128
      9.1.6 簡介Lambda 表示式
    • 1-129
      9.1.7 Iterable 與Iterator
    • 1-130
      9.1.8 Comparable 與Comparator
    • 1-131
      9.2 鍵值對應的Map
    • 1-132
      9.2.1 常用Map 實作類別
    • 1-133
      9.2.2 走訪Map 鍵值
    • 1-134
      9.3 不可變的Collection 與Map
    • 1-135
      9.3.1 淺談不可變特性
    • 1-136
      9.3.2 Collections 的unmodifiableXXX()方法
    • 1-137
      9.3.3 List、Set、Map 的of()方法
    • 1-138
      課後練習
    • 1-139
      Ch10 輸入輸出
    • 1-140
      10.1 InputStream 與OutputStream
    • 1-141
      10.1.1 串流設計觀念
    • 1-142
      10.1.2 串流繼承架構
    • 1-143
      10.1.3 串流處理裝飾器
    • 1-144
      10.2 字元處理類別
    • 1-145
      10.2.1 Reader 與Writer 繼承架構
    • 1-146
      10.2.2 字元處理裝飾器
    • 1-147
      課後練習
    • 1-148
      Ch11 執行緒與並行API
    • 1-149
      11.1 執行緒
    • 1-150
      11.1.1 簡介執行緒
    • 1-151
      11.1.2 Thread 與Runnable
    • 1-152
      11.1.3 執行緒生命週期
    • 1-153
      11.1.4 關於ThreadGroup
    • 1-154
      11.1.5 synchronized 與volatile
    • 1-155
      11.1.6 等待與通知
    • 1-156
      11.2 並行API
    • 1-157
      11.2.1 Lock、ReadWriteLock 與Condition
    • 1-158
      11.2.2 使用Executor
    • 1-159
      11.2.3 簡介並行Collection
    • 1-160
      課後練習
    • 1-161
      Ch12 Lambda
    • 1-162
      12.1 認識Lambda 語法
    • 1-163
      12.1.1 Lambda 語法概覽
    • 1-164
      12.1.2 Lambda 表示式與函式介面
    • 1-165
      12.1.3 Lambda 遇上this 與final
    • 1-166
      12.1.4 方法與建構式參考
    • 1-167
      12.1.5 介面預設方法
    • 1-168
      12.2 Functional 與Stream API
    • 1-169
      12.2.1 使用Optional 取代null
    • 1-170
      12.2.2 標準API 的函式介面
    • 1-171
      12.2.3 使用Stream 進行管線操作
    • 1-172
      12.2.4 進行Stream 的reduce 與collect
    • 1-173
      12.2.5 關於flatMap()方法
    • 1-174
      12.2.6 Stream 相關API
    • 1-175
      12.2.7 活用Optional 與Stream
    • 1-176
      12.3 Lambda、平行化與非同步處理
    • 1-177
      12.3.1 Stream 與平行化
    • 1-178
      12.3.2 Arrays 與平行化
    • 1-179
      12.3.3 CompletableFuture 非同步處理
    • 1-180
      課後練習
    • 1-181
      Ch13 時間與日期
    • 1-182
      13.1 認識時間與日期
    • 1-183
      13.1.1 時間的度量
    • 1-184
      13.1.2 年曆簡介
    • 1-185
      13.1.3 認識時區
    • 1-186
      13.2 認識Date 與Calendar
    • 1-187
      13.2.1 時間軸上瞬間的Date
    • 1-188
      13.2.2 處理時間日期的Calendar
    • 1-189
      13.3 新時間日期API
    • 1-190
      13.3.1 機器時間觀點的API
    • 1-191
      13.3.2 人類時間觀點的API
    • 1-192
      13.3.3 對時間的運算
    • 1-193
      13.3.4 年曆系統設計
    • 1-194
      課後練習
    • 1-195
      Ch14 NIO 與NIO2
    • 1-196
      14.1 認識NIO
    • 1-197
      14.1.1 NIO 概觀
    • 1-198
      14.1.2 Channel 架構與操作
    • 1-199
      14.1.3 Buffer 架構與操作
    • 1-200
      14.2 NIO2 檔案系統
    • 1-201
      14.2.1 NIO2 架構
    • 1-202
      14.2.2 操作路徑
    • 1-203
      14.2.3 屬性讀取與設定
    • 1-204
      14.2.4 操作檔案與資料夾
    • 1-205
      14.2.5 讀取、走訪資料夾
    • 1-206
      14.2.6 過濾、搜尋檔案
    • 1-207
      課後練習
    • 1-208
      Ch15 通用API
    • 1-209
      15.1 日誌
    • 1-210
      15.1.1 簡介日誌API
    • 1-211
      15.1.2 指定日誌層級
    • 1-212
      15.1.3 使用Handler 與Formatter
    • 1-213
      15.1.4 自訂Handler、Formatter 與Filter
    • 1-214
      15.1.5 使用logging.properties
    • 1-215
      15.2 HTTP Client API
    • 1-216
      15.2.1 淺談URI 與HTTP
    • 1-217
      15.2.2 入門HTTP Client API
    • 1-218
      15.2.3 發送請求資訊
    • 1-219
      15.3 規則表示式
    • 1-220
      15.3.1 簡介規則表示式
    • 1-221
      15.3.2 quote()與quoteReplacement()
    • 1-222
      15.3.3 Pattern 與Matcher
    • 1-223
      15.3.4 Unicode 規則表示式
    • 1-224
      15.4 處理數字
    • 1-225
      15.4.1 使用BigInteger
    • 1-226
      15.4.2 使用BigDecimal
    • 1-227
      15.4.3 數字的格式化
    • 1-228
      15.5 再談堆疊追蹤
    • 1-229
      15.5.1 取得StackTraceElement
    • 1-230
      15.5.2 Stack-Walking API
    • 1-231
      課後練習
    • 1-232
      Ch16 整合資料庫
    • 1-233
      16.1 JDBC 入門
    • 1-234
      16.1.1 簡介JDBC
    • 1-235
      16.1.2 連接資料庫
    • 1-236
      16.1.3 使用Statement、ResultSet
    • 1-237
      16.1.4 使用PreparedStatement、CallableStatement
    • 1-238
      16.2 JDBC 進階
    • 1-239
      16.2.1 使用DataSource 取得連線
    • 1-240
      16.2.2 使用ResultSet 捲動、更新資料
    • 1-241
      16.2.3 批次更新
    • 1-242
      16.2.4 Blob 與Clob
    • 1-243
      16.2.5 簡介交易
    • 1-244
      16.2.6 簡介metadata
    • 1-245
      課後練習
    • 1-246
      Ch17 反射與類別載入器
    • 1-247
      17.1 運用反射
    • 1-248
      17.1.1 Class 與.class 檔案
    • 1-249
      17.1.2 使用Class.forName()
    • 1-250
      17.1.3 從Class 建立物件
    • 1-251
      17.1.4 從Class 獲得資訊
    • 1-252
      17.1.5 操作物件方法與成員
    • 1-253
      17.1.6 動態代理
    • 1-254
      17.1.7 當反射遇上模組
    • 1-255
      17.1.8 使用ServiceLoader
    • 1-256
      17.2 瞭解類別載入器
    • 1-257
      17.2.1 類別載入器階層
    • 1-258
      17.2.2 建立ClassLoader 實例
    • 1-259
      課後練習
    • 1-260
      Ch18 自訂泛型、列舉與標註
    • 1-261
      18.1 自訂泛型
    • 1-262
      18.1.1 使用extends 與 ?
    • 1-263
      18.1.2 使用super 與 ?
    • 1-264
      18.2 自訂列舉
    • 1-265
      18.2.1 成員的細節
    • 1-266
      18.2.2 建構式、方法與介面
    • 1-267
      18.3 record 與sealed
    • 1-268
      18.3.1 深入record 類別
    • 1-269
      18.3.2 sealed 的型態階層
    • 1-270
      18.4 關於標註
    • 1-271
      18.4.1 常用標準標註
    • 1-272
      18.4.2 自訂標註型態
    • 1-273
      18.4.3 執行時期讀取標註資訊
    • 1-274
      課後練習
    • 1-275
      Ch19 深入模組化
    • 1-276
      19.1 運用模組
    • 1-277
      19.1.1 模組的種類
    • 1-278
      19.1.2 requires、exports 與opens 細節
    • 1-279
      19.1.3 修補模組
    • 1-280
      19.1.4 放寬模組封裝與依賴
    • 1-281
      19.2 模組API
    • 1-282
      19.2.1 使用Module
    • 1-283
      19.2.2 使用ModuleDescriptor
    • 1-284
      19.2.3 淺談ModuleLayer
    • 1-285
      19.3 打包模組
    • 1-286
      19.3.1 使用jar 打包
    • 1-287
      19.3.2 使用jmod 打包
    • 1-288
      19.3.3 使用jlink 建立執行時期映像
    • 1-289
      附錄 如何使用本書專案
    • 1-290
      A.1 專案環境配置
    • 1-291
      A.2 匯入專案
    • 1-292
      版權頁
    • 1-293
      封底頁

    常見問答

    您可以透過手機、平板或是電腦登入 HiSKIO 平台,在【我的學習】>【我的書籍】頁面,選擇想看的電子書。

    猜你喜歡

    用戶評價

    | 收集中

    銷售方案