書馨卡幫你省薪 2024個人購書報告 2024中圖網年度報告
歡迎光臨中圖網 請 | 注冊

Java核心編程

出版社:清華大學出版社出版時間:2020-06-01
開本: 16開 頁數: 382
中 圖 價:¥49.0(5.5折) 定價  ¥89.0 登錄后可看到會員價
加入購物車 收藏
運費6元,滿39元免運費
?新疆、西藏除外
本類五星書更多>

Java核心編程 版權信息

Java核心編程 本書特色

本書主要基于Java 13來介紹Java核心編程相關的知識點,以及從Java 8至Java 13以來的新特性,主要內容包括:Java語言基礎、面向對象編程、集合框架、異常處理、I/O處理、網絡編程、并發(fā)編程、基本編程結構的改進、垃圾回收器的增強、使用腳本語言、Lambda表達式與函數式編程、Stream、集合的增強、新的日期和時間API、并發(fā)編程的增強、模塊化、響應式編程等內容。通過本書的學習,讀者不僅能夠掌握Java語言的編程技巧,還可以拓展視野,提升市場競爭能力。 本書主要面向Java語言的愛好者、Java工程師和架構師。

Java核心編程 內容簡介

作為一門很受歡迎的編程語言,Java在經歷了20多年的發(fā)展后,已然成為開發(fā)者*的“利器”,廣泛運用于企業(yè)級應用和Cloud Native應用。Java能夠長盛不衰的*秘訣就是能夠與時俱進、不斷推陳出新。
本書主要基于Java 13來介紹Java核心編程相關的知識點,以及從Java 8至Java 13以來的新特性。這些知識點和新特性既能滿足當前企業(yè)級應用的開發(fā)需求,又可以大幅減輕開發(fā)者的負擔。通
過本書的學習,讀者不僅能夠掌握Java語言的編程技巧,還可以拓展視野、提升市場競爭能力。

Java核心編程 目錄

目 錄
第1章 JAVA概述 1
1.1 Java演進史 1
1.1.1 Java簡史 1
1.1.2 Java大有可為 3
1.2 現代Java新特性:從Java 8到Java 13 3
1.2.1 Java 8新特性 3
1.2.2 Java 9新特性 4
1.2.3 Java 10新特性 4
1.2.4 Java 11新特性 5
1.2.5 Java 12新特性 5
1.2.6 Java 13新特性 5
1.3 如何學習本書 6
1.3.1 學習的前置條件 6
1.3.2 如何使用本書 6
1.3.3 如何獲取源碼 7
1.4 開發(fā)環(huán)境配置及編寫**個Java應用 7
1.4.1 JDK 13的下載 7
1.4.2 JDK 13的安裝 8
1.4.3 Eclipse的下載 10
1.4.4 Eclipse的安裝 10
1.4.5 Eclipse的配置 11
1.4.6 創(chuàng)建Java應用 11
1.4.7 創(chuàng)建模塊 12
1.4.8 創(chuàng)建Hello World程序 13
1.4.9 使用JUnit 5 14
第2章 JAVA語言基礎 17
2.1 變量 17
2.1.1 命名 18
2.1.2 基本數據類型 18
2.1.3 基本數據類型的默認值 21
2.1.4 字面值 21
2.1.5 基本數據類型之間的轉換 24
2.1.6 數組 26
2.2 運算符 29
2.2.1 賦值運算符 30
2.2.2 算術運算符 30
2.2.3 一元運算符 32
2.2.4 等價和關系運算符 33
2.2.5 條件運算符 34
2.2.6 instanceof運算符 36
2.2.7 位運算符和位移運算符 37
2.3 表達式、語句和塊 39
2.3.1 表達式 39
2.3.2 語句 40
2.3.3 塊 41
2.4 控制流程語句 41
2.4.1 if-then 41
2.4.2 if-then-else 42
2.4.3 switch 43
2.4.4 while 48
2.4.5 do-while 49
2.4.6 for 50
2.4.7 break 51
2.4.8 continue 53
2.4.9 return 55
2.5 枚舉類型 55
2.6 泛型 58
2.6.1 泛型的作用 58
2.6.2 泛型類型 59
2.6.3 泛型方法 62
2.6.4 有界類型參數 63
2.6.5 泛型的繼承和子類型 64
2.6.6 通配符 66
2.6.7 類型擦除 69
2.6.8 使用泛型的一些限制 71
2.7 關鍵字 74
第3章 面向對象編程基礎 76
3.1 編程的抽象 76
3.2 類的示例 78
3.3 對象的接口 79
3.4 包 81
3.5 對象提供服務 82
3.6 隱藏實現的細節(jié) 82
3.6.1 為什么需要控制對成員的訪問 83
3.6.2 Java的作用域 83
3.7 實現的重用 84
3.8 繼承 84
3.8.1 Java中的繼承 84
3.8.2 關于Shape的討論 86
3.8.3 實戰(zhàn):繼承的示例 87
3.9 is-a和is-like-a的關系 88
3.10 多態(tài)性 88
3.10.1 多態(tài)的定義 89
3.10.2 理解多態(tài)的好處 89
第4章 集合框架 90
4.1 集合框架概述 90
4.1.1 集合框架的定義 90
4.1.2 Java集合框架的優(yōu)點 91
4.1.3 集合框架常見的接口 91
4.1.4 集合框架的實現 92
4.2 Collection接口 93
4.2.1 遍歷集合 93
4.2.2 集合接口批量操作 94
4.3 Set接口 95
4.3.1 HashSet、TreeSet和LinkedHashSet的比較 95
4.3.2 Set接口基本操作 96
4.3.3 Set接口批量操作 97
4.4 Map接口 97
4.4.1 Map接口基本操作 97
4.4.2 Map接口批量操作 98
4.4.3 Map集合視圖 98
4.5 List接口 99
4.5.1 集合操作 99
4.5.2 位置訪問和搜索操作 100
4.5.3 List的迭代器 100
4.5.4 范圍視圖操作 100
4.5.5 List常用算法 101
4.6 Queue接口 101
4.7 Deque接口 102
4.7.1 插入 103
4.7.2 移除 103
4.7.3 檢索 103
第5章 異常處理 104
5.1 異常捕獲與處理 104
5.1.1 先從一個例子入手 104
5.1.2 try塊 106
5.1.3 catch塊 106
5.1.4 在一個異常處理程序中處理多個類型的異常 107
5.1.5 finally塊 107
5.1.6 try-with-resources語句 108
5.2 通過方法聲明拋出異常 110
5.3 如何拋出異常 111
5.3.1 throw語句 111
5.3.2 Throwable類及其子類 112
5.3.3 Error類 112
5.3.4 Exception類 112
5.4 異常鏈 113
5.4.1 訪問堆棧跟蹤信息 113
5.4.2 記錄異常日志 114
5.5 創(chuàng)建異常類 115
5.5.1 一個創(chuàng)建異常類的例子 115
5.5.2 選擇超類 115
5.6 未檢查異常 116
5.7 使用異常帶來的優(yōu)勢 116
5.7.1 將錯誤處理代碼與“常規(guī)”代碼分離 116
5.7.2 將錯誤沿調用堆棧向上傳遞 118
5.7.3 對錯誤類型進行分組和區(qū)分 119
5.8 try-with-resources語句的詳細用法 120
5.8.1 手動關閉資源 121
5.8.2 Java 7中的try-with-resources介紹 121
5.8.3 try-with-resources在Java 9中的改進 123
5.9 實戰(zhàn):使用try-with-resources 123
第6章 I/O處理 126
6.1 I/O流 126
6.1.1 字節(jié)流 126
6.1.2 字符流 128
6.1.3 面向行的I/O 129
6.1.4 緩沖流 130
6.1.5 刷新緩沖流 130
6.1.6 掃描和格式化文本 130
6.1.7 命令行I/O 135
6.1.8 數據流 137
6.1.9 對象流 138
6.2 文件I/O 141
6.2.1 路徑 141
6.2.2 Path類 143
6.2.3 Path的操作 143
6.2.4 文件操作 151
6.2.5 檢查文件或目錄 153
6.2.6 刪除文件或目錄 154
6.2.7 復制文件或目錄 154
6.2.8 移動一個文件或目錄 155
第7章 網絡編程 156
7.1 網絡基礎 156
7.1.1 了解OSI參考模型 156
7.1.2 TCP/IP網絡模型與OSI模型的對比 157
7.1.3 了解TCP 158
7.1.4 了解UDP 158
7.1.5 了解端口 159
7.2 Socket 160
7.2.1 了解Socket 160
7.2.2 實戰(zhàn):實現一個echo服務器 161
7.3 I/O模型的演進 163
7.3.1 UNIX I/O模型的基本概念 163
7.3.2 UNIX I/O模型 163
7.3.3 常見Java I/O模型 168
7.4 HTTP Client API概述 175
7.5 HttpRequest 176
7.6 HttpResponse 176
7.7 實戰(zhàn):HTTP Client API的使用例子 177
7.7.1 發(fā)起同步請求 177
7.7.2 發(fā)起異步請求 179
第8章 并發(fā)編程 180
8.1 了解線程 180
8.1.1 線程的狀態(tài) 180
8.1.2 進程和線程 181
8.1.3 線程和纖程 182
8.1.4 Java中的線程對象 182
8.1.5 實戰(zhàn):多線程示例 185
8.2 并發(fā)編程是把雙刃劍 187
8.2.1 死鎖 187
8.2.2 饑餓 188
8.2.3 活鎖 189
8.3 解決并發(fā)問題的常用方法 189
8.3.1 同步 189
8.3.2 原子訪問 193
8.3.3 無鎖化設計提升并發(fā)能力 194
8.3.4 緩存提升并發(fā)能力 194
8.3.5 更細顆粒度的并發(fā)單元 194
8.4 守衛(wèi)塊 195
8.5 不可變對象 197
8.5.1 一個同步類的例子 197
8.5.2 定義不可變對象的策略 199
8.6 高級并發(fā)對象 201
8.6.1 鎖對象 201
8.6.2 執(zhí)行器 203
8.6.3 并發(fā)集合 209
8.6.4 原子變量 210
8.6.5 并發(fā)隨機數 211
第9章 基本編程結構的改進 212
9.1 直接運行Java源代碼 212
9.1.1 Java 11可以直接運行Java源碼 213
9.1.2 原理 214
9.2 局部變量類型推斷 214
9.2.1 了解var聲明變量的一些限制 215
9.2.2 原理 215
9.3 實戰(zhàn):var關鍵字的使用 215
9.4 字符串處理增強 216
9.4.1 支持Raw String Literals 216
9.4.2 原理 217
9.4.3 限制 217
9.4.4 Java 11常用String API 218
9.4.5 Java 12常用String API 219
9.5 實戰(zhàn):Java 11字符串的使用 220
9.5.1 Raw String Literals的使用 220
9.5.2 String API的使用 221
9.6 支持Unicode標準 223
9.6.1 了解Unicode 10 223
9.6.2 在控制臺打印出Emoji 224
9.6.3 在GUI中顯示出Emoji 224
9.7 Optional類 226
9.7.1 復現NullPointerException 226
9.7.2 Optional類的魔法 228
9.7.3 Optional類的其他方法 229
9.8 接口中的默認方法 232
9.9 實戰(zhàn):接口中默認方法的使用 234
9.10 接口中的靜態(tài)方法 235
9.11 實戰(zhàn):接口中靜態(tài)方法的使用 236
9.12 Switch表達式增強 237
9.12.1 實戰(zhàn):Switch表達式的例子 237
9.12.2 使用Switch表達式的注意事項 238
9.13 緊湊數字格式 238
9.14 文本塊 239
第10章 垃圾回收器的增強 241
10.1 了解G1 241
10.1.1 了解Java垃圾回收機制 241
10.1.2 查找不再使用的對象 242
10.1.3 垃圾回收算法 242
10.1.4 分代垃圾回收 242
10.1.5 Java垃圾回收器的歷史 243
10.1.6 了解G1的原理 243
10.1.7 了解G1 Young GC 245
10.1.8 了解G1 Mixed GC 246
10.2 了解ZGC 249
10.2.1 更短的停頓 249
10.2.2 ZGC的著色指針和讀屏障 250
10.2.3 讀屏障 251
10.2.4 GC工作原理 251
10.2.5 將未使用的堆內存返回給操作系統(tǒng) 253
10.3 了解Epsilon 253
10.4 了解Shenandoah 254
10.4.1 Shenandoah工作原理 254
10.4.2 性能指標 255
第11章 使用腳本語言 257
11.1 什么是JShell 257
11.2 為什么需要JShell 257
11.3 JShell的基本操作 258
11.3.1 啟動JShell 258
11.3.2 退出JShell 258
11.3.3 使用JShell測試API 258
11.3.4 使用JShell操作流 259
11.3.5 獲取幫助 259
11.4 實戰(zhàn):JShell的綜合用法 260
11.4.1 定義方法 260
11.4.2 使用自定義的方法 261
11.4.3 查看所有的變量及引用情況 261
11.4.4 保存歷史 261
11.4.5 打開文件 262
11.4.6 獲取變量的引用值 262
第12章 LAMBDA表達式及函數式編程 263
12.1 Lambda表達式 263
12.1.1 **個Lambda表達式的例子 263
12.1.2 第二個Lambda表達式的例子 264
12.1.3 Lambda表達式簡寫的依據 265
12.2 方法引用 265
12.2.1 什么是方法引用 266
12.2.2 實戰(zhàn):方法引用的例子 266
12.3 構造函數引用 267
12.4 函數式接口 268
12.4.1 Predicate 268
12.4.2 Consumer 269
12.4.3 Function 270
12.4.4 總結 271
12.5 Consumer接口 271
12.5.1 andThen 272
12.5.2 IntConsumer 272
12.5.3 LongConsumer 273
12.5.4 DoubleConsumer 273
12.5.5 BiConsumer 274
12.6 Supplier接口 275
12.6.1 get 275
12.6.2 BooleanSupplier 275
12.6.3 IntSupplier 276
12.6.4 LongSupplier 276
12.6.5 DoubleSupplier 277
12.7 Predicate接口 277
12.7.1 test 278
12.7.2 negate 278
12.7.3 or 279
12.7.4 and 279
12.7.5 not 279
12.7.6 IntPredicate 280
12.7.7 BiPredicate 281
12.8 Function接口 282
12.8.1 compose 283
12.8.2 andThen 283
12.8.3 identity 283
12.9 類型檢查 284
12.10 類型推導 285
12.11 使用本地變量 285
第13章 STREAM 287
13.1 Stream API概述 287
13.1.1 什么是聚合操作 287
13.1.2 什么是Stream 288
13.1.3 Stream的構成 289
13.2 實例:Stream使用的例子 290
13.2.1 傳統(tǒng)的過濾數據的做法 290
13.2.2 Stream過濾數據的做法 291
13.3 Stream簡化了編程 291
13.4 Stream常用操作 292
13.4.1 collect(toList())終止操作 292
13.4.2 map中間操作 293
13.4.3 filter中間操作 293
13.4.4 count終止操作 293
13.4.5 min終止操作 293
13.4.6 max終止操作 294
13.4.7 reduce終止操作 294
13.5 過濾數據 294
13.6 切分數據 295
13.6.1 使用Predicate切分數據 295
13.6.2 截斷Stream 297
13.6.3 跳過元素 297
13.7 映射 298
13.7.1 map 298
13.7.2 flatMap 298
13.8 查找和匹配 300
13.8.1 allMatch 300
13.8.2 anyMatch 300
13.8.3 noneMatch 300
13.8.4 findFirst 301
13.8.5 findAny 301
13.9 壓縮數據 301
13.9.1 計算總和 302
13.9.2 計算*大值和*小值 302
13.10 構造Stream 303
13.10.1 從值中構造 303
13.10.2 從nullable中構造 304
13.10.3 從數組中構造 304
13.10.4 從集合中構造 304
13.10.5 從文件中構造 304
13.11 收集收據 305
13.11.1 Collector接口 305
13.11.2 Collectors 307
13.11.3 統(tǒng)計總數 308
13.11.4 計算*大值和*小值 309
13.11.5 求和 309
13.11.6 求平均數 310
13.11.7 連接字符串 310
13.11.8 分組 310
13.11.9 分區(qū) 311
13.12 并行計算 311
13.12.1 并行流 312
13.12.2 Stream與parallelStream的抉擇 312
13.13 Spliterator接口 313
第14章 集合的增強 314
14.1 集合工廠 314
14.1.1 List工廠 315
14.1.2 Set工廠 316
14.1.3 Map工廠 316
14.2 實戰(zhàn):List工廠的使用 317
14.3 實戰(zhàn):Set工廠的使用 318
14.4 實戰(zhàn):Map工廠的使用 318
14.5 List和Set常用方法 319
14.5.1 removeIf 319
14.5.2 replaceAll 320
14.6 實戰(zhàn):removeIf方法的使用 321
14.7 實戰(zhàn):replaceAll方法的使用 321
14.8 Map常用方法 322
14.8.1 forEach 322
14.8.2 sorted 323
14.8.3 getOrDefault 323
14.9 實戰(zhàn):forEach方法的使用 324
14.10 實戰(zhàn):sorted的使用 324
14.11 實戰(zhàn):getOrDefault方法的使用 325
14.12 實戰(zhàn):計算操作 325
14.12.1 computeIfAbsent 325
14.12.2 computeIfPresent 326
14.12.3 compute 326
14.13 實戰(zhàn):移除操作 327
14.14 實戰(zhàn):替換操作 327
14.14.1 replaceAll 327
14.14.2 replace 328
14.15 實戰(zhàn):合并操作 328
14.16 ConcurrentHashMap的改進 329
14.16.1 Java 8之前的ConcurrentHashMap類 329
14.16.2 Java 8之后的ConcurrentHashMap類的改進 330
第15章 新的日期和時間API 334
15.1 了解LocalDate 334
15.2 了解LocalTime 335
15.3 了解LocalDateTime 336
15.4 了解Instant 338
15.5 了解Duration 339
15.6 了解Period 339
15.7 常用日期的操作 340
15.8 調整時間 341
15.9 格式化日期 342
15.10 時區(qū)處理 343
15.11 日歷 345
第16章 并發(fā)編程的增強 346
16.1 Stream的parallel()方法 346
16.2 執(zhí)行器及線程池 346
16.2.1 線程及線程數 347
16.2.2 線程池 347
16.2.3 Java 8中的Executors增強 348
16.2.4 了解線程池的風險 348
16.3 Future API 350
16.3.1 并行提交任務 350
16.3.2 順序返回結果 352
16.4 CompletableFuture 352
16.4.1 CompletionStage 353
16.4.2 CompletableFuture 353
16.4.3 CompletableFuture類使用示例 354
16.5 異步API中的異常處理 355
16.6 box-and-channel模型 357
16.7 實例:在線商城 357
16.8 實例:同步方法轉為異步 358
16.8.1 異常處理 360
16.8.2 使用supplyAsync簡化代碼 360
第17章 模塊化 362
17.1 為什么需要模塊化 362
17.1.1 體積大 363
17.1.2 訪問控制粒度不夠細 363
17.1.3 依賴地獄 364
17.2 用模塊化開發(fā)和設計Java應用 364
17.2.1 模塊的聲明 364
17.2.2 模塊的零件 365
17.2.3 模塊描述 366
17.2.4 平臺模塊 366 第18章 響應式編程 368
18.1 響應式編程概述 368
18.1.1 Flow Control的幾種解決方案 369
18.1.2 Pull、Push與Pull-Push 369
18.1.3 Flow API與Stream API 370
18.2 Flow API 370
18.2.1 訂閱者Subscriber 370
18.2.2 Subscriber示例 371
18.2.3 發(fā)布者Publisher 372
18.2.4 訂閱Subscription 372
18.2.5 處理器Processor 373
18.3 實戰(zhàn):響應式編程綜合示例 373
18.3.1 定義Subscriber 373
18.3.2 定義Publisher 375
18.3.3 運行應用 377
參考文獻 383
展開全部

Java核心編程 作者簡介

介柳偉衛(wèi),網名waylau、老衛(wèi),80后程序員,關注編程、系統(tǒng)架構、性能優(yōu)化;是 CSDN、 開源中國、云棲社區(qū)等技術社區(qū)專家,慕課網特邀講師;在IT公司擔任過項目經理、架構師、高級技術顧問等職位,擁有十幾年開發(fā)經驗,具有豐富的軟件開發(fā)管理及系統(tǒng)架構經驗;主導過多個國家級、省級大型分布式系統(tǒng)設計與研發(fā),參與過面向全球的供應鏈系統(tǒng)服務化改造;在實際工作中,積累了大量的分布式系統(tǒng)、微服務架構經驗;已出版《分布式系統(tǒng)常用技術及案例分析》《Spring Boot 企業(yè)級應用開發(fā)實戰(zhàn)》《Spring Cloud 微服務架構開發(fā)實戰(zhàn)》《Spring 5開發(fā)大全》等著作。

商品評論(0條)
暫無評論……
書友推薦
編輯推薦
返回頂部
中圖網
在線客服