目录
第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
