Posts
All the articles I've posted.
-
HashMap的哈希扰动与扩容机制
HashMap 用 h^(h>>>16) 扰动让高位参与桶定位,扩容时 hash&oldCap 一次位运算决定节点去留,尾插法消除 JDK7 死循环。
-
ConcurrentHashMap——从JDK7分段锁到JDK8桶级锁
JDK 8 ConcurrentHashMap 以桶头节点 synchronized + CAS 空桶替代 JDK 7 分段锁,多线程协助扩容,ForwardingNode 让读操作对扩容透明。
-
ArrayList与CopyOnWriteArrayList——1.5倍扩容与fail-fast机制
ArrayList 1.5 倍扩容与 fail-fast 迭代器的 modCount 检测机制,CopyOnWriteArrayList 以写时复制数组实现读无锁写安全。
-
注解原理——@Override背后有一个动态代理
注解本质是继承 Annotation 的接口,运行时通过 JDK 动态代理将 class 文件属性表中的值映射为方法返回值。
-
Java泛型类型擦除——编译器为什么要生成桥接方法?
泛型擦除后多态调用断裂,编译器自动生成桥接方法作为 JVM 与泛型之间的翻译层修复方法签名不匹配。
-
Java序列化——反序列化为什么用Unsafe.allocateInstance绕过构造器?
反序列化通过 Unsafe.allocateInstance 绕过构造器恢复对象状态,同时也带来了 RCE 安全风险。
-
Java反射——Inflation机制让反射接近直接调用
反射调用前 15 次走 Native JNI,之后 Inflation 机制动态生成字节码实现接近直接调用的性能,深刻理解反射的慢与优化。
-
享元模式——IntegerCache与String常量池的共享之道
享元模式通过共享减少对象创建,IntegerCache 和 String 常量池是 JDK 源码中最经典的应用实例。