Java JDK實用編程方法與算法
耿祥義、張躍平
商品描述
"本書基於JDK 21版本,借助119個精心設計的實例深入剖析JDK特定類的方法。本書緊密結合“Java程序設計”課程相關教材,如《Java 2實用教程(題庫+微課視頻版)》(第7版)和《Java面向對象程序設計》(第4版?微課視頻版),對其內容進行全面補充與拓展。 全書共10章,按照JDK中包的層次精心組織內容。本書中的實例包含有助於理解重要知識點的基礎示例、實際場景的應用示例、提升能力的進階示例。全部實例在知識點方面覆蓋了Java的基本語法、基礎類、實用類、輸入輸出流、加密/解密、多線程、圖形用戶界面、圖形圖像、集合框架、Stream框架以及圖論框架等內容。本書契合現代快節奏的學習需求,采用碎片化學習模式,讀者可依據自身的知識掌握情況靈活、自主地挑選實例進行學習,真正實現個性化、高效的學習。 本書適合作為“Java程序設計”課程的教學參考書,特別適合作為《Java 2實用教程(題庫+微課視頻版)》(第7版)或《Java面向對象程序設計》(第4版?微課視頻版)的配套參考書。 "
作者簡介
"耿祥義,大連交通大學大學教授,遼寧省本科一流課程“面向對象程序設計”課程負責人,作為主編出版教材《java2實用教程》第6版(其中第3版是國家級十一五規劃教材),主要研究領域是程序設計與算法,在清華大學出版社出版10余部教材。張躍平,大連交通大學大學副教授,遼寧省本科一流課程“面向對象程序設計”主講教師,作為主編出版教材《java2實用教程》第6版(其中第3版是國家級十一五規劃教材),主要研究領域是企業智能信息化,在清華大學出版社出版10余部教材。"
目錄大綱
目錄
第1章java.lang包
1.1Integer類1
1.1.1進制1
1.1.2冪次方4
1.2Character類7
1.2.1標識符7
1.2.2數字和字母8
1.2.3字節反轉11
1.3Float和Double類13
1.3.1小數的二進制13
1.3.2 IEEE 75414
1.4Number類16
1.4.1轉換精度16
1.4.2判斷精度17
1.5switch表達式與四則運算19
1.5.1switch表達式19
1.5.2四則運算20
1.6Math類21
1.6.1浮點數的粒度性與求極限21
1.6.2笛卡兒愛心曲線23
1.7String類24
1.7.1逐個替換和全部替換24
1.7.2JDK 8之後的新方法26
1.8StringBuilder類28
1.8.1StringBuffer類和StringBuilder類的區別28
1.8.2旋轉轉盤29
1.8.3equals()方法30
1.9Record類30
1.10Enum類32
1.10.1枚舉32
1.10.2路口信號燈331.11ProcessBuilder類和Process類35
1.11.1主要方法35
1.11.2動態編譯表達式36
第2章java.math包
2.1大素數39
2.2親和數41
2.3階乘的尾42
2.4196之謎44
2.5黃金分割45
2.6計算引力47
第3章javax.crypto和java.security包
3.1AES與DES對稱加密50
3.2RSA非對稱加密54
3.3RSA數字簽名57
第4章java.util.function包
4.1函數接口與Lambda表達式62
4.2Predicate<T>函數接口64
4.3Function<T,R>函數接口65
4.4Consumer<T>函數接口66
4.5Supplier<T>函數接口66
4.6ToIntBiFunction<T,U>函數接口67
4.7ToDoubleBiFunction<T,U>函數接口68
4.8DoubleBinaryOperator和IntBinaryOperator函數接口69
第5章java.util和java.time包
5.1Random類72
5.1.1蒙特卡羅算法與圓周率73
5.1.2安全隨機數與驗證碼74
5.2Base64類和UUID類76
5.2.1Base64編碼與圖像76
5.2.2UUID識別碼和訂單號77
5.3BitSet類78
5.3.1BitSet與數據去重79
5.3.2BitSet與篩選法80
5.4IntSummaryStatistics類和DoubleSummaryStatistics類81
5.4.1統計評委的打分81
5.4.2統計公司的薪水82
5.5Period類和Duration類83
5.5.1Period類與日期差83
5.5.2Duration類與時間差85
5.6Arrays 88
5.6.1快速排序、並行排序與插入排序88
5.6.2查找單詞90
5.7LinkedList<E>泛型類 91
5.7.1函數式快速排序92
5.7.2洗牌93
5.8ArrayList<E>泛型類 96
5.8.1二分法與插入排序96
5.8.2砝碼稱重99
5.9Stack<E>泛型類 101
5.9.1回文串101
5.9.2老鼠走迷宮102
5.10ArrayDeque<E>和PriorityQueue<E>泛型類 105
5.10.1約瑟夫問題106
5.10.2大寫數字107
5.10.3按成績出列109
5.11HashMap<K,V>泛型類 110
5.11.1優化遞歸110
5.11.2單件模式112
5.12HashSet<E>和LinkedHashSet<E>泛型類 114
5.12.1獲取不相同的隨機數115
5.12.2篩選法和數組去重117
5.12.3數組的最長遞增子序列118
5.13Collections類 120
5.13.1排序121
5.13.2最大值與最小值122
5.13.3頻率123
第6章java.util.stream包
6.1Stream流126
6.1.1Stream數據通道126
6.1.2Stream數據通道的數據源127
6.2終止操作132
6.3中間操作136
6.4數據源144
6.4.1數組數據源144
6.4.2List或Set數據源146
6.4.3靜態方法與數據源147
6.4.4碼點和Token數據源148
6.4.5隨機數數據源150
6.5Stream並行流152
第7章java.nio.file包
7.1復制和移動文件154
7.2讀取文件155
7.3寫文件156
第8章java.util.concurrent和java.util.concurrent.atomic包
8.1線程池158
8.2虛擬線程161
8.3Atomic操作166
第9章javax.swing和java.awt.geom包
9.1限制文本框的輸入172
9.2自制橢圓形按鈕175
9.3數據的柱狀圖與餅圖178
9.4雪花飄舞——虛擬線程靈動演繹183
9.5分形與Koch分形曲線186
第10章JGraphT圖論框架
10.1無向圖191
10.2有向圖195
10.3網絡198
10.4深度優先搜索和廣度優先搜索202
10.5最短路徑204
10.6第k短路徑208
10.7最小生成樹210
10.8拓撲排序212
10.9圖著色214
10.10介數217
10.11最大流219







