返回 随笔记录
一、Java语言基础
博主
大约 24 分钟
一、Java语言基础
范围:语法、OOP、集合、多线程、IO/NIO、反射、泛型、Lambda、Java新特性 知识点数量:172项 → 扩展至350+项 返回总目录
1.1 Java语法基础
1.1.1 数据类型与变量
- 1. 基本数据类型(byte/short/int/long/float/double/char/boolean) - 掌握8种基本类型的取值范围、默认值和内存占用
- 2. 引用数据类型(类、接口、数组) - 理解引用类型与基本类型的区别,掌握对象的创建和使用
- 3. 类型转换(自动转换与强制转换) - 理解隐式类型转换规则,掌握显式转换的语法和风险
- 4. 变量作用域(局部变量、实例变量、类变量) - 掌握不同作用域变量的生命周期和访问规则
- 5. 常量定义(final关键字) - 掌握常量的声明方式和使用场景,理解final的不可变性
- 6. 类型推断(var关键字) - 了解Java 10引入的局部变量类型推断,掌握使用场景和限制
- 7. 包装类(Integer、Double等) - 掌握自动装箱和拆箱,理解缓存机制(-128~127)
- 8. 字符串不可变性 - 理解String的final char[]实现,掌握字符串常量池
- 9. StringBuilder vs StringBuffer - 掌握可变字符串,理解线程安全差异
- 10. 数值格式化 - 掌握DecimalFormat、NumberFormat使用
- 11. 日期时间API(旧) - 掌握Date、Calendar、SimpleDateFormat
- 12. 日期时间API(新) - 掌握Java 8的LocalDate、LocalTime、LocalDateTime
- 13. 时区处理 - 掌握ZoneId、ZonedDateTime、Instant
- 14. 大数运算 - 掌握BigInteger、BigDecimal精确计算
- 15. 随机数生成 - 掌握Math.random()、Random、ThreadLocalRandom
- 16. 数学运算 - 掌握Math类常用方法,理解浮点数精度问题
1.1.2 运算符与表达式
- 17. 算术运算符(+、-、*、/、%) - 掌握基本数学运算,理解整数除法和取模运算
- 18. 关系运算符(==、!=、>、<、>=、<=) - 掌握比较运算,理解对象比较与值比较的区别
- 19. 逻辑运算符(&&、||、!) - 掌握逻辑运算,理解短路求值机制
- 20. 位运算符(&、|、^、~、<<、>>、>>>) - 掌握位操作,理解在性能优化和加密中的应用
- 21. 赋值运算符(=、+=、-=等) - 掌握复合赋值运算,理解类型转换规则
- 22. 三元运算符(? :) - 掌握条件表达式,理解与if-else的区别和使用场景
- 23. 运算符优先级 - 掌握运算符优先级表,理解括号的使用时机
- 24. 类型提升规则 - 理解二元运算中的类型提升
- 25. 浮点数比较 - 掌握BigDecimal比较,避免==直接比较
1.1.3 流程控制
- 26. if-else条件语句 - 掌握条件分支,理解多分支结构和嵌套if的使用
- 27. switch-case语句 - 掌握多路分支,理解Java 12+的switch表达式
- 28. for循环 - 掌握传统for循环,理解循环变量和迭代逻辑
- 29. while循环 - 掌握while循环,理解前置条件判断的使用场景
- 30. do-while循环 - 掌握do-while循环,理解后置条件判断的特点
- 31. break与continue - 掌握循环控制语句,理解标签break的使用
- 32. 增强for循环(foreach) - 掌握简化遍历语法,理解与迭代器的关系
- 33. switch模式匹配 - 掌握Java 17+的switch模式匹配
- 34. 循环嵌套与复杂度 - 理解多重循环的时间复杂度
- 35. 无限循环与退出条件 - 掌握while(true)的使用场景
1.2 面向对象编程
1.2.1 类与对象
- 36. 类的定义与实例化 - 掌握类的声明、构造函数和对象创建
- 37. 成员变量与方法 - 理解实例变量和实例方法,掌握this关键字
- 38. 构造函数(默认、带参、重载) - 掌握构造函数重载,理解构造链
- 39. 代码块(静态块、实例块、局部块) - 理解初始化顺序,掌握静态块的使用场景
- 40. 内部类(成员、静态、局部、匿名) - 掌握四种内部类,理解适用场景和限制
- 41. 枚举类(enum) - 掌握枚举定义,理解枚举的方法、字段和构造函数
- 42. 记录类(record) - 掌握Java 14+的记录类,理解不可变数据载体
- 43. 密封类(sealed) - 掌握Java 17密封类,理解继承控制
- 44. 对象初始化顺序 - 掌握静态变量→静态块→实例变量→实例块→构造函数
- 45. 方法签名与重载 - 理解方法签名组成,掌握重载规则
- 46. 可变参数 - 掌握...语法,理解底层数组实现
- 47. 对象生命周期 - 理解创建、使用、垃圾回收三阶段
- 48. 浅拷贝与深拷贝 - 掌握clone方法,理解引用复制问题
- 49. 对象比较 - 掌握equals方法重写,理解compareTo接口
- 50. toString方法 - 掌握对象字符串表示,理解调试重要性
1.2.2 封装、继承、多态
- 51. 访问控制(private、default、protected、public) - 掌握四种访问级别,理解封装原则
- 52. getter/setter方法 - 掌握属性访问器,理解Lombok的@Data注解
- 53. 继承(extends关键字) - 掌握单继承机制,理解super关键字和构造函数调用
- 54. 方法重写(@Override) - 掌握重写规则,理解协变返回类型
- 55. 多态(向上转型、向下转型) - 掌握多态机制,理解运行时绑定
- 56. instanceof关键字 - 掌握类型检查,理解Java 16的模式匹配
- 57. 方法隐藏与变量隐藏 - 理解静态方法的隐藏机制,区分重写与隐藏
- 58. 继承的优缺点 - 理解代码复用与紧耦合的权衡
- 59. 组合优于继承 - 掌握委托模式,理解继承替代方案
- 60. 方法调用绑定 - 理解静态绑定与动态绑定
- 61. 构造函数的继承 - 理解super()调用和隐式默认构造
- 62. final类与final方法 - 掌握不可继承的设计,理解安全考虑
1.2.3 抽象类与接口
- 63. 抽象类(abstract class) - 掌握抽象类定义,理解抽象方法的作用
- 64. 接口定义(interface) - 掌握接口声明,理解接口与类的区别
- 65. 接口默认方法(default) - 掌握Java 8默认方法,理解接口演进策略
- 66. 接口静态方法 - 掌握Java 8接口静态方法,理解工具方法组织
- 67. 接口私有方法 - 掌握Java 9私有方法,理解代码复用
- 68. 多接口实现 - 掌握接口多实现,理解默认方法冲突解决
- 69. 标记接口 - 理解Serializable等标记接口的作用机制
- 70. 函数式接口 - 掌握@FunctionalInterface注解,理解SAM类型
- 71. 接口 vs 抽象类 - 理解设计选择,掌握适用场景
- 72. 接口隔离原则 - 掌握ISP原则,理解细粒度接口设计
- 73. 接口多继承 - 理解接口可以extends多个接口
- 74. 抽象工厂与接口 - 掌握接口在设计模式中的应用
- 75. SPI机制 - 掌握Service Provider Interface,理解接口扩展
1.3 集合框架
1.3.1 List集合
- 76. ArrayList底层原理 - 掌握动态数组实现,理解扩容机制(1.5倍)
- 77. LinkedList底层原理 - 掌握双向链表实现,理解节点结构和指针操作
- 78. Vector与Stack - 理解线程安全的集合,了解历史遗留问题
- 79. CopyOnWriteArrayList - 掌握写时复制机制,理解读多写少场景
- 80. List遍历方式(for、迭代器、Stream) - 掌握多种遍历方式,理解并发修改异常
- 81. List排序(Comparator、Comparable) - 掌握排序接口,理解Lambda表达式简化
- 82. ArrayList vs LinkedList性能对比 - 理解随机访问和插入删除的性能差异
- 83. ArrayList扩容机制详解 - 掌握grow方法,理解位运算优化
- 84. LinkedList作为队列/栈 - 掌握addFirst/addLast/push/pop
- 85. 列表子视图 - 掌握subList方法,理解视图与副本区别
- 86. 列表批量操作 - 掌握addAll/removeAll/retainAll
- 87. 并发修改异常 - 理解fail-fast机制,掌握Iterator.remove正确使用
- 88. 列表查找 - 掌握indexOf/lastIndexOf,理解线性查找
- 89. 列表替换 - 掌握set/rereplaceAll方法
- 90. 不可变List - 掌握Collections.unmodifiableList和List.of
1.3.2 Set集合
- 91. HashSet底层原理 - 掌握基于HashMap的实现,理解去重机制
- 92. LinkedHashSet - 掌握插入顺序维护,理解双向链表+哈希表
- 93. TreeSet底层原理 - 掌握红黑树实现,理解自然排序和定制排序
- 94. EnumSet - 掌握枚举集合,理解位向量实现的高性能
- 95. CopyOnWriteArraySet - 掌握线程安全Set,理解底层委托机制
- 96. hashCode与equals约定 - 理解对象相等性判断,掌握重写规则
- 97. Set去重原理 - 理解哈希冲突处理,掌握equals和hashCode协同
- 98. Set集合运算 - 掌握并集、交集、差集操作
- 99. TreeSet范围查询 - 掌握subSet/headSet/tailSet
- 100. 集合去重技巧 - 掌握利用Set去重的最佳实践
- 101. 自定义对象去重 - 掌握重写hashCode和equals的正确方式
- 102. Set遍历顺序 - 理解不同Set的遍历顺序保证
1.3.3 Map集合
- 103. HashMap底层原理 - 掌握数组+链表+红黑树结构,理解JDK 8优化
- 104. HashMap扩容机制 - 掌握负载因子(0.75),理解rehash过程
- 105. LinkedHashMap - 掌握插入/访问顺序,理解LRU缓存实现
- 106. TreeMap底层原理 - 掌握红黑树实现,理解SortedMap接口
- 107. ConcurrentHashMap - 掌握分段锁/CAS机制,理解高并发设计
- 108. Hashtable - 理解线程安全Map,了解与ConcurrentHashMap的区别
- 109. WeakHashMap - 掌握弱引用键,理解缓存和内存敏感场景
- 110. IdentityHashMap - 掌握引用相等性判断,理解==与equals的区别
- 111. HashMap vs HashTable vs ConcurrentHashMap - 理解三者区别和适用场景
- 112. HashMap哈希算法 - 掌握扰动函数,理解高位运算
- 113. HashMap树化阈值 - 理解TREEIFY_THRESHOLD=8和UNTREEIFY_THRESHOLD=6
- 114. ConcurrentHashMap分段锁 - 理解JDK 7的Segment设计
- 115. ConcurrentHashMap CAS - 掌握JDK 8的Node+CAS+syncled优化
- 116. Map遍历方式 - 掌握keySet/values/entrySet/stream
- 117. Map默认值处理 - 掌握getOrDefault/computeIfAbsent
- 118. Map合并操作 - 掌握merge/compute/computeIfPresent
- 119. Map排序 - 理解TreeMap排序和LinkedHashMap顺序
- 120. Map容量设置 - 掌握初始化容量避免扩容
- 121. ImmutableMap - 掌握Collections.unmodifiableMap和Map.of
1.3.4 Queue与Deque
- 122. Queue接口 - 掌握add/offer/remove/poll/element/peek区别
- 123. PriorityQueue - 掌握堆实现,理解自然排序和定制排序
- 124. ArrayDeque - 掌握数组实现的双端队列,理解循环数组
- 125. LinkedList作为Deque - 掌握双端队列操作
- 126. BlockingQueue - 掌握阻塞队列,理解put/take方法
- 127. ArrayBlockingQueue - 掌握有界阻塞队列
- 128. LinkedBlockingQueue - 掌握可选有界阻塞队列
- 129. PriorityBlockingQueue - 掌握优先级阻塞队列
- 130. SynchronousQueue - 掌握同步队列,理解直接传递
- 131. DelayQueue - 掌握延迟队列,理解Delayed接口
- 132. 队列应用场景 - 掌握生产者消费者、任务调度
1.3.5 集合工具与算法
- 133. Collections工具类 - 掌握排序、搜索、同步包装等方法
- 134. Arrays工具类 - 掌握数组操作,理解asList的局限性
- 135. 集合遍历(Iterator、ListIterator) - 掌握迭代器模式,理解fail-fast机制
- 136. 集合排序算法 - 理解TimSort、MergeSort在集合中的应用
- 137. 集合转数组 - 掌握toArray方法,理解泛型数组限制
- 138. 不可变集合 - 掌握Collections.unmodifiableXXX,理解Java 9 List.of
- 139. 集合二分查找 - 掌握Collections.binarySearch
- 140. 集合最值 - 掌握Collections.max/min
- 141. 集合填充与替换 - 掌握Collections.fill/replaceAll
- 142. 集合反转与旋转 - 掌握Collections.reverse/rotate
- 143. 集合随机打乱 - 掌握Collections.shuffle
- 144. 集合频率统计 - 掌握Collections.frequency/disjoint
- 145. 集合并行处理 - 理解Stream.parallel的性能考量
1.4 多线程与并发
1.4.1 线程基础
- 146. 线程创建(继承Thread、实现Runnable) - 掌握两种创建方式,理解区别
- 147. Callable与Future - 掌握带返回值的任务,理解异步结果获取
- 148. 线程状态(NEW、RUNNABLE、BLOCKED等) - 掌握6种状态,理解状态转换
- 149. 线程优先级与守护线程 - 理解优先级调度,掌握setDaemon使用
- 150. 线程中断机制 - 掌握interrupt方法,理解中断状态检查
- 151. ThreadLocal原理 - 掌握线程局部变量,理解内存泄漏问题
- 152. 线程组(ThreadGroup) - 理解线程组织,了解现代替代方案
- 153. 线程命名与标识 - 掌握线程ID和名称管理
- 154. 线程join方法 - 掌握等待线程结束,理解超时join
- 155. 线程sleep与yield - 掌握暂停和让步,理解与wait的区别
- 156. 线程未捕获异常 - 掌握UncaughtExceptionHandler
- 157. 虚拟线程(Java 21) - 掌握Project Loom,理解轻量级线程
1.4.2 同步与锁
- 158. synchronized关键字 - 掌握对象锁和类锁,理解Monitor机制
- 159. 同步代码块与方法 - 理解锁粒度,掌握锁优化策略
- 160. volatile关键字 - 掌握可见性和禁止指令重排,理解不保证原子性
- 161. Lock接口(ReentrantLock) - 掌握可重入锁,理解tryLock和lockInterruptibly
- 162. ReadWriteLock - 掌握读写锁,理解读写分离场景
- 163. StampedLock - 掌握Java 8乐观锁,理解性能优势
- 164. 死锁产生条件与预防 - 理解四个必要条件,掌握预防策略
- 165. 活锁与饥饿 - 理解并发问题,掌握解决方案
- 166. 锁升级过程 - 掌握无锁→偏向锁→轻量级锁→重量级锁
- 167. 锁消除与锁粗化 - 理解JVM锁优化
- 168. 公平锁与非公平锁 - 掌握ReentrantLock公平性设置
- 169. 条件变量(Condition) - 掌握await/signal,理解多条件等待
- 170. 信号量(Semaphore) - 掌握资源限流,理解acquire/release
- 171. 自旋锁 - 理解CAS循环等待,掌握适用场景
- 172. 读写锁降级 - 掌握StampedLock的乐观读转悲观读
1.4.3 并发工具类
- 173. AtomicInteger等原子类 - 掌握CAS原理,理解ABA问题
- 174. CountDownLatch - 掌握倒计时门闩,理解等待多线程完成
- 175. CyclicBarrier - 掌握循环屏障,理解线程集合点
- 176. Semaphore - 掌握信号量,理解资源限流
- 177. Exchanger - 掌握线程间数据交换,理解双向通信
- 178. Phaser - 掌握Java 7阶段同步器,理解动态注册
- 179. CompletableFuture - 掌握异步编程,理解链式调用和组合
- 180. AtomicReference - 掌握引用类型原子操作
- 181. LongAdder vs AtomicLong - 掌握高并发计数器选择
- 182. AtomicStampedReference - 掌握ABA问题解决
- 183. CompletableFuture组合 - 掌握thenApply/thenAccept/thenRun
- 184. CompletableFuture异常处理 - 掌握exceptionally/handle
- 185. CompletableFuture并行任务 - 掌握allOf/anyOf
1.4.4 线程池
- 186. ThreadPoolExecutor核心参数 - 掌握corePoolSize、maximumPoolSize等7个参数
- 187. 线程池工作流程 - 理解任务提交到执行的完整流程
- 188. 阻塞队列(ArrayBlockingQueue等) - 掌握4种队列,理解拒绝策略
- 189. Executors工厂方法 - 了解newFixedThreadPool等,理解潜在风险
- 190. 自定义线程池 - 掌握合理配置,理解CPU密集和IO密集区别
- 191. ForkJoinPool - 掌握工作窃取算法,理解分治任务
- 192. ScheduledThreadPoolExecutor - 掌握定时任务,理解周期执行
- 193. 线程池监控与调优 - 掌握指标监控,理解动态调整策略
- 194. 拒绝策略 - 掌握AbortPolicy/CallerRunsPolicy/DiscardPolicy
- 195. 线程池关闭 - 掌握shutdown和shutdownNow区别
- 196. 线程池扩展 - 掌握beforeExecute/afterExecute钩子方法
- 197. 线程池大小计算 - 掌握NcpuUcpu(1+W/C)公式
- 198. 虚拟线程执行器 - 掌握Executors.newVirtualThreadPerTaskExecutor
- 199. 线程池与ThreadLocal - 理解清理ThreadLocal防止内存泄漏
- 200. 线程池最佳实践 - 掌握阿里巴巴开发手册规范
1.4.5 并发集合
- 201. ConcurrentHashMap详解 - 掌握put/get/merge的并发安全
- 202. CopyOnWriteArrayList - 掌握迭代安全的List
- 203. ConcurrentLinkedQueue - 掌握无锁队列实现
- 204. BlockingQueue实现 - 掌握生产者消费者模式
- 205. ConcurrentSkipListMap - 掌握并发跳表实现
- 206. ConcurrentSkipListSet - 掌握并发有序Set
- 207. 并发集合性能对比 - 理解不同场景的选择
1.5 IO/NIO
1.5.1 字节流
- 208. InputStream/OutputStream - 掌握字节流基类,理解读写操作
- 209. FileInputStream/FileOutputStream - 掌握文件字节流,理解资源关闭
- 210. BufferedInputStream/BufferedOutputStream - 掌握缓冲流,理解性能优化
- 211. DataInputStream/DataOutputStream - 掌握基本类型读写,理解跨平台
- 212. ObjectInputStream/ObjectOutputStream - 掌握对象序列化,理解serialVersionUID
- 213. ByteArrayInputStream/ByteArrayOutputStream - 掌握内存流,理解临时数据
- 214. 装饰器模式在IO中的应用 - 理解IO流的设计模式
- 215. 序列化和反序列化 - 掌握Serializable接口,理解transient关键字
- 216. 外部序列化 - 掌握Externalizable接口,理解自定义序列化
- 217. 序列化安全 - 理解readObject安全风险
- 218. 过滤器流 - 掌握FilterInputStream/FilterOutputStream
- 219. PushbackInputStream - 掌握回退流,理解单字节回退
- 220. SequenceInputStream - 掌握多流合并
- 221. try-with-resources - 掌握自动资源管理,理解AutoCloseable
1.5.2 字符流
- 222. Reader/Writer - 掌握字符流基类,理解字符编码
- 223. FileReader/FileWriter - 掌握文件字符流,理解平台编码问题
- 224. BufferedReader/BufferedWriter - 掌握缓冲字符流,理解readLine方法
- 225. InputStreamReader/OutputStreamWriter - 掌握转换流,理解字节到字符转换
- 226. PrintWriter - 掌握格式化输出,理解println和printf
- 227. StringReader/StringWriter - 掌握字符串流,理解内存操作
- 228. 字符编码(UTF-8、GBK等) - 理解编码原理,掌握乱码处理
- 229. Charset类 - 掌握字符集操作,理解availableCharsets
- 230. 文件编码检测 - 理解编码识别问题
- 231. Unicode与UTF - 掌握编码原理,理解BOM头
- 232. 字符流 vs 字节流 - 理解使用场景选择
- 233. Scanner类 - 掌握文本扫描,理解正则分隔
1.5.3 NIO
- 234. Buffer(ByteBuffer等) - 掌握缓冲区,理解position/limit/capacity
- 235. Channel(FileChannel等) - 掌握通道,理解双向读写
- 236. Selector - 掌握多路复用器,理解事件驱动
- 237. SelectionKey - 掌握事件类型,理解OP_READ/OP_WRITE
- 238. NIO vs BIO对比 - 理解同步阻塞与同步非阻塞的区别
- 239. 零拷贝技术 - 理解FileChannel.transferTo,掌握性能优化
- 240. NIO.2(Path、Files) - 掌握Java 7文件API,理解Visitor模式
- 241. 异步文件通道(AsynchronousFileChannel) - 掌握异步IO,理解Future回调
- 242. DirectBuffer vs HeapBuffer - 掌握堆外内存,理解GC影响
- 243. Buffer翻转操作 - 掌握flip/clear/rewind/compact区别
- 244. 内存映射文件 - 掌握MappedByteBuffer,理解大文件处理
- 245. Scatter/Gather - 掌握分散读取和聚集写入
- 246. 管道(Pipe) - 掌握线程间数据传输
- 247. 网络通道(SocketChannel) - 掌握TCP非阻塞IO
- 248. ServerSocketChannel - 掌握服务端非阻塞监听
- 249. Reactor模式 - 理解NIO的设计模式
- 250. AIO(NIO.2异步IO) - 掌握AsynchronousSocketChannel
1.5.4 文件操作
- 251. File类操作 - 掌握文件创建、删除、重命名
- 252. 目录遍历 - 掌握listFiles和Files.walk,理解递归遍历
- 253. 文件复制与移动 - 掌握Files.copy和Files.move
- 254. 文件属性读取 - 掌握BasicFileAttributes,理解元数据
- 255. 临时文件创建 - 掌握createTempFile,理解清理策略
- 256. 文件监视(WatchService) - 掌握文件变化监听,理解事件轮询
- 257. 文件权限 - 掌握POSIX文件权限
- 258. 符号链接 - 掌握软链接和硬链接
- 259. 文件查找 - 掌握Files.find和Files.walk
- 260. 文件读写 - 掌握Files.readAllBytes/write
- 261. 文件行读取 - 掌握Files.lines和Files.readAllLines
- 262. 路径操作 - 掌握Path.normalize/resolve/relativize
- 263. 文件树遍历 - 掌握FileVisitor接口
- 264. 文件空间操作 - 掌握FileStore和FileSystem
1.6 反射与泛型
1.6.1 反射机制
- 265. Class对象获取 - 掌握三种获取方式,理解类加载
- 266. 构造函数反射 - 掌握Constructor,理解newInstance
- 267. 方法反射 - 掌握Method.invoke,理解参数传递
- 268. 字段反射 - 掌握Field.get/set,理解访问私有字段
- 269. 数组反射 - 掌握Array工具类,理解动态创建
- 270. 反射性能优化 - 理解setAccessible,掌握缓存策略
- 271. 反射应用场景 - 理解框架底层原理,掌握动态代理
- 272. 注解反射 - 掌握Annotation的反射获取
- 273. 泛型反射 - 掌握ParameterizedType和TypeVariable
- 274. 动态代理 - 掌握Proxy.newProxyInstance
- 275. 方法句柄(MethodHandle) - 掌握Java 7的方法调用API
- 276. VarHandle - 掌握Java 9的变量句柄
- 277. 反射与泛型 - 理解类型擦除后的反射限制
- 278. 反射安全风险 - 理解模块系统的反射限制
1.6.2 泛型
- 279. 泛型类与泛型方法 - 掌握类型参数声明,理解类型推导
- 280. 泛型接口 - 掌握接口类型参数,理解实现类指定
- 281. 类型通配符(? extends、? super) - 掌握PECS原则,理解协变逆变
- 282. 类型擦除 - 理解泛型实现原理,掌握桥方法
- 283. 泛型数组限制 - 理解为什么不能创建泛型数组
- 284. 泛型约束(extends) - 掌握类型上界,理解多约束
- 285. 泛型在集合中的应用 - 理解集合类型安全,掌握最佳实践
- 286. 泛型方法推断 - 理解类型参数推断规则
- 287. 泛型擦除问题 - 掌握运行时类型信息丢失
- 288. 泛型与反射 - 掌握通过反射获取泛型信息
- 289. 泛型递归约束 - 掌握<T extends Comparable<T>>
- 290. 通配符捕获 - 理解编译器通配符捕获机制
1.7 Lambda与函数式编程
1.7.1 Lambda表达式
- 291. Lambda语法 - 掌握参数->主体语法,理解类型推断
- 292. 方法引用 - 掌握四种引用方式,理解简化语法
- 293. 构造函数引用 - 掌握new引用,理解工厂模式简化
- 294. 变量捕获 - 理解effectively final限制,掌握闭包
- 295. Lambda vs 匿名内部类 - 理解区别,掌握适用场景
- 296. Lambda性能 - 理解 invokedynamic 指令,掌握性能影响
- 297. Lambda调试技巧 - 掌握调试Lambda表达式的方法
- 298. Lambda异常处理 - 掌握在Lambda中处理受检异常
- 299. Lambda序列化 - 理解Lambda的序列化支持
- 300. 方法引用类型 - 掌握静态、实例、超类方法引用
1.7.2 Stream API
- 301. Stream创建 - 掌握collection.stream()、Stream.of等
- 302. 中间操作(filter、map、sorted等) - 掌握链式调用,理解惰性求值
- 303. 终止操作(collect、reduce、forEach等) - 掌握结果收集,理解短路操作
- 304. Collector接口 - 掌握自定义收集器,理解toList/joining
- 305. 并行Stream - 掌握parallel(),理解ForkJoinPool
- 306. Optional类 - 掌握空值处理,理解orElse/orElseGet区别
- 307. Stream性能考量 - 理解开销,掌握适用场景
- 308. Stream无限流 - 掌握generate/iterate
- 309. 自定义Spliterator - 掌握分割迭代器
- 310. Stream flatMap - 掌握嵌套流扁平化
- 311. Stream groupingBy - 掌握分组收集器
- 312. Stream partitioningBy - 掌握分区收集器
- 313. Stream reducing - 掌握归约操作
- 314. Stream peek - 掌握调试方法,理解副作用
- 315. Stream concat - 掌握流合并
- 316. Stream.Builder - 掌握流构建器
- 317. IntStream/LongStream/DoubleStream - 掌握基本类型流
- 318. Stream与性能 - 理解何时使用并行Stream
1.7.3 函数式接口
- 319. Predicate - 掌握条件判断,理解and/or/negate
- 320. Function - 掌握类型转换,理解compose/andThen
- 321. Consumer - 掌握消费操作,理解链式调用
- 322. Supplier - 掌握供给操作,理解延迟初始化
- 323. BiFunction/BiConsumer - 掌握双参数接口
- 324. UnaryOperator/BinaryOperator - 掌握同类型操作
- 325. 自定义函数式接口 - 掌握@FunctionalInterface
- 326. 函数组合 - 掌握Function链式调用
- 327. 函数式接口与Lambda - 理解目标类型推断
- 328. 函数式编程范式 - 掌握不可变性、纯函数
1.8 Java新特性
1.8.1 Java 8-11核心特性
- 329. Java 8新特性概览 - 掌握Lambda、Stream、默认方法等
- 330. Java 9模块化 - 理解module-info,掌握依赖声明
- 331. Java 10局部变量类型推断 - 掌握var关键字
- 332. Java 11 HTTP Client - 掌握新HTTP API
- 333. Java 11字符串API增强 - 掌握isBlank、lines等方法
- 334. Java 8日期时间API - 掌握LocalDate/LocalTime
- 335. Java 8 Optional增强 - 掌握空值处理最佳实践
- 336. Java 9 集合工厂方法 - 掌握List.of/Set.of/Map.of
- 337. Java 9 改进try-with-resources - 掌握有效final变量
- 338. Java 9 私有接口方法 - 掌握接口代码复用
- 339. Java 10 应用类数据共享 - 理解AppCDS优化启动
- 340. Java 11 单文件运行 - 掌握直接运行.java文件
- 341. Java 11 Epsilon GC - 理解无操作GC
- 342. Java 11 ZGC - 掌握低延迟垃圾回收器
1.8.2 Java 17-21特性
- 343. Java 17密封类 - 掌握sealed类,理解继承控制
- 344. Java 17记录类 - 掌握record,理解不可变数据载体
- 345. Java 17模式匹配instanceof - 掌握类型转换简化
- 346. Java 19虚拟线程预览 - 理解Project Loom
- 347. Java 21虚拟线程正式 - 掌握虚拟线程使用
- 348. Java 21模式匹配switch - 掌握switch增强
- 349. Java 21序列集合 - 掌握List/SequencedCollection增强
- 350. Java 21字符串模板 - 掌握String Templates预览
- 351. Java 21未命名类和实例main - 理解初学者友好特性
- 352. Java 17 Switch模式匹配 - 掌握类型模式
- 353. Java 19 结构化并发 - 理解并发编程新范式
- 354. Java 21 分代ZGC - 掌握分代垃圾回收
- 355. Java 17 外部函数API - 掌握Panama项目
- 356. Java 17 向量API - 理解SIMD优化
- 357. 版本升级路径 - 掌握从Java 8到21的升级注意事项
进度统计
- 领域:Java语言基础
- 知识点总数:357项
- 已完成:0项
- 待完成:357项
实战项目建议
- 集合框架实践:实现LRU缓存(LinkedHashMap扩展)
- 多线程实践:实现线程池监控面板
- IO/NIO实践:实现文件搜索引擎
- Stream实践:实现数据分析管道
常见面试问题
- HashMap的底层实现原理?JDK 7和JDK 8有什么区别?
- ConcurrentHashMap如何保证线程安全?
- synchronized和ReentrantLock的区别?
- 线程池的核心参数有哪些?如何合理配置?
- volatile关键字的作用和原理?
- Java中的四种引用类型及其应用场景?
推荐学习资源
- 书籍:《Java核心技术卷I》《Effective Java》《Java并发编程实战》
- 视频:尚硅谷Java全套、黑马程序员Java基础
- 文档:Java官方文档
- 练习:LeetCode、牛客网Java专项练习
知识点测试
读完文章了?来测试一下你对知识点的掌握程度吧!
评论区
使用 GitHub 账号登录后即可发表评论,支持 Markdown 格式。
如果评论系统无法加载,请确保:
- 您的网络可以访问 GitHub
- giscus GitHub App 已安装到仓库
- 仓库已启用 Discussions 功能