Java中的垃圾收集器:G1、ZGC及选择方法
Java 21中G1和ZGC的比较:如何工作、如何启用、读取GC日志、检查GC运行状态以及为Spring Boot应用选择GC的标准
Java 21中G1和ZGC的比较:如何工作、如何启用、读取GC日志、检查GC运行状态以及为Spring Boot应用选择GC的标准
正确使用LocalDate、ZonedDateTime和Duration:计算日期、转换时区、处理夏令时,并用Clock编写稳定的测试。
比较List.of、List.copyOf和Collections.unmodifiableList:哪个是副本、哪个只是视图、如何处理null,以及何时应该使用哪个。
比较 Java 21 中的各种线程池类型:固定池、缓存池、定时池、工作窃取池、虚拟线程。如何自定义配置 ThreadPoolExecutor 以及在 Spring Boot 中安全使用。
区分checked和unchecked异常、选择正确的类型、设计具有上下文的自定义异常并避免常见反模式。
使用 Comparator.comparing、thenComparing、reversed 和 nullsLast 进行多条件排序,还包含常见的使用误区。
学习如何使用 Collectors.groupingBy、partitioningBy 和下游 collector(如 counting、mapping、filtering)在 Java 21 中分组和分割数据。
用文本块优雅地编写多行字符串,掌握缩进和转义规则,学习 formatted、stripIndent、translateEscapes 等新的 String 方法。
理解为什么 List<Integer> 不是 List<Number>,何时使用 ? extends,何时使用 ? super,以及通过具体示例学习 PECS 原则。
学会使用 try-with-resources 自动关闭资源,编写 AutoCloseable 类,理解 suppressed exception 和常见错误。
比较 HashMap、Collections.synchronizedMap 和 ConcurrentHashMap 在线程安全、锁机制、迭代器、null 值和性能方面的差异,附带示例和测试。
理解 Java 中 equals() 和 hashCode() 的契约,正确的实现方式,以及导致 HashSet、HashMap 工作异常的常见错误。
在 Java 21 中使用 CompletableFuture 并行调用多个服务,连接和合并结果,处理错误、超时,以及为异步代码编写测试。
使用 Java 21 中的 sealed classes、switch 模式匹配和 record patterns 替换冗长的 if-instanceof 链,编写更简洁的代码并让编译器检查所有情况
Optional 使用指南:掌握正确用法和常见反模式,编写更清晰、更安全的代码。
通过 Order 和 Customer 的实际例子,了解 Java Stream API 的四大"支柱"——从数据过滤到结果汇总。
了解Java中的record解决了什么问题,如何正确用于DTO、value object,以及应避免的情况。
通过具体示例了解 Java 21 中的虚拟线程,与平台线程进行对比,以及如何在 Spring Boot 中使用。