Java 并发编程
从第一性原理理解 Java 并发:为什么需要并发(CPU 与 IO 的速度差三个数量级)→ 并发三大问题源头(上下文切换、内存可见性、指令重排)→ Java 内存模型(JMM)的本质与 8 条 happen-before 规则 → synchronized 锁升级机制 → volatile 的双重语义 → AQS 原理与 JUC 同步工具 → 线程池参数剖析 → CAS 与 ABA 问题 → 死锁四大条件与排查手段。
阅读全文
JDK 内置工具详解
JDK 17 内置 35 个命令行与 GUI 工具全解:编译运行(javac/java/javaw)、类与字节码(javap/jdeps/jdeprscan/jmod/jimage/jlink/jpackage/jar/jarsigner)、JVM 监控诊断(jps/jstat/jstatd/jcmd/jinfo/jmap/jstack/jconsole/jhsdb/jfr)、安全证书(keytool/kinit/klist/ktab)、其他(javadoc/jdb/jshell/jrunscript/serialver/rmiregistry 及辅助工具)。
阅读全文
泛型
深入理解 Java 泛型的本质:参数化类型解决代码重复与类型安全的矛盾、类型擦除的历史包袱与运行时限制、通配符体系(? extends / ? super)与 PECS 原则、Java 泛型与 C++ 模板的根本差异。
阅读全文
反射
从 Java 语言高级特性的整体视角切入,讲清楚反射在高级特性矩阵里的定位、反射解决的根本问题、四大核心能力、五大代价,以及 getXxx 与 getDeclaredXxx 的区别
阅读全文
数据类型系统
从"硬件没有类型,内存只有0和1"这个根本矛盾切入,讲清楚数据类型的本质是"值的集合+操作的集合",并系统解析类型系统的两大分类轴(静态/动态、强/弱)、类型的分类体系、五代演进路径、Java类型系统全景以及常见误解
阅读全文
枚举类的理解
从"如何表达有限的固定取值集合"这个根本问题切入,讲清楚枚举的本质是一组命名的单例对象,并深入解析 Java 枚举的语法糖机制、枚举实现单例的 JVM 保障、ordinal 的陷阱以及 EnumSet/EnumMap 的性能原理
阅读全文
网络编程是什么
从词源与本义切入,讲清楚"网络编程"到底在编什么,以及它和本地编程、Socket、协议之间的关系
阅读全文
序列化与反序列化
从内存世界与外部世界的根本对立切入,讲清楚为什么需要序列化、序列化的本质是什么,并系统对比 Java 原生序列化、JSON 系、二进制跨语言系等常用技术
阅读全文