Java 语言学习笔记,覆盖面向对象、集合框架、并发编程、JVM、反射代理等。点击下面的文章阅读:
Java 基础
- Java 面向对象:封装、继承、多态——三大特性、重载 vs 重写、接口 vs 抽象类
- Java static 详解——静态变量/静态方法/静态代码块/静态内部类,属于类 vs 属于实例
- interface 与 abstract class 区别——能力契约 vs 类族骨架、多实现 vs 单继承、模板方法模式
- Java 集合框架详解——Collection/Map 两大体系、ArrayList vs LinkedList、HashMap 底层原理(数组+链表+红黑树、扩容)、Set/Queue、线程安全集合选型
JVM 与内存模型
- JVM 是什么:跨平台原理与整体架构——JVM 软件计算机概念、跨平台原理、源码→字节码→类加载→执行的完整旅程、JIT(实测快 17 倍)
- JVM 内存模型与垃圾回收——运行时数据区、堆的分代、GC 算法、类加载
- 内存溢出(OOM):类型、定位与实战排查——六种 OOM 类型实跑复现、jmap/jstat 工具链、决策流程、静态缓存泄漏实战案例
- volatile 关键字详解——可见性/有序性、Java 内存模型、为什么不保证原子性、vs synchronized
并发编程
- Java 并发编程——线程安全三大问题、volatile/synchronized/CAS、线程池
- ReentrantLock 详解——vs synchronized、tryLock/可中断/公平锁、Condition 双条件队列
- 读写锁详解:ReentrantReadWriteLock 与 StampedLock——读读共享、锁降级 vs 锁升级、乐观读验戳
- AQS 原理详解——state + CLH 队列 + park/unpark、公平/非公平差异、共享模式
反射与动态代理
- Java 反射详解——Class 对象、运行时操作类、Spring IoC/动态代理/ORM 的基石
- Java 动态代理:JDK 代理 vs CGLIB——为什么有接口用 JDK(实现接口冒充)、无接口用 CGLIB(继承生成子类冒充),Spring AOP/MyBatis 的底层
IO 与网络
- Java NIO 详解——Channel/Buffer/Selector 三件套、非阻塞模型、单线程管多连接(EchoServer 实测)、DirectBuffer 与零拷贝、Netty
