博客

归档

2026 年 10 月

本文系统讲解 java.util.concurrent 核心工具:先给出 JUC 全景图与学习边界;再深入 AQS 的 volatile state、CLH 变体双向队列与 Node 的 waitStatus 语义,推演 acquire/release 全流程并手写一个不可重入独占锁;随后剖析 ReentrantLock 的公平与非公平实现差异、ConditionObject 等待队列与 transferAfterCancelledWait、读写锁降级与 StampedLock 乐观读;接着讲透 CAS 的 ABA 问题、原子类家族与 LongAdder 的分段伪共享优化;最后覆盖 Concu
本文系统讲解 Java 并发编程基础:从多核时代的并发动机出发,梳理进程与线程、四种线程创建方式、线程六状态迁移与正确停止方式;深入剖析线程安全三要素(原子性、可见性、有序性)与 JMM 主内存/工作内存抽象、happens-before 八条规则与四种内存屏障;结合字节码与对象头 Mark Word 讲透 volatile 的 Lock 前缀指令、synchronized 的 Monitor 机制与偏向锁/轻量级锁/重量级锁升级过程;最后用死锁排查、生产者消费者、线程安全计数器与高频面试题收尾。
React 与 Vue 走的是两条不同的路:Vue 用 Proxy 做响应式,React 则靠虚拟 DOM 与可中断的 Fiber 调度。本文先把 JSX 编译与 createElement 讲清,再拆解虚拟 DOM 的协调(Reconciliation)与 Diff 算法(同层比较、key 的作用、双端对比思路);核心是一节 Fiber 架构——为什么 Stack Reconciler 会卡顿、Fiber 节点如何可中断可恢复、双缓存树与 workInProgress 如何避免白屏闪烁。随后深入 Hooks 心智模型:闭包陷阱、useState 的批量更新、useEffect 的依赖与清理、
本篇是「Java 从入门到精通」系列第十一篇,系统拆解支撑 Spring、MyBatis、Jackson 等框架的三大底层机制:反射、注解与动态代理。文章从 Class 对象的三种获取方式与静态初始化副作用讲起,完整梳理 Method.invoke 的调用链路与 inflation 膨胀机制、setAccessible 的性能收益与 JDK 9 模块化之后的 opens 强封装限制;随后剖析注解的本质与元注解保留策略,手写 @JsonField 序列化器、@Log 调用日志与一个可运行的最小依赖注入容器;最后深入 JDK 动态代理生成的 $Proxy0 类结构与 InvocationHandl
本篇从内核态与用户态、系统调用与四次数据拷贝讲起,厘清流、阻塞 IO 与缓冲的本质;系统梳理四大抽象基类、节点流与处理流以及装饰器模式的层层套娃逻辑;覆盖 FileInputStream、Buffered 系列、Data、Object、Print、Piped 等常用流与字符编码乱码根因;接着进入 NIO.2 的 Path/Files/WatchService,深入 Serializable、serialVersionUID、transient、readResolve 与 ObjectInputFilter 反序列化防护;最后拆解 NIO 三大组件 Buffer 状态机、Channel 与基于
本篇是集合框架的下半部分,聚焦 Map 家族。先用一张全景对比表厘清 HashMap、LinkedHashMap、TreeMap、Hashtable、ConcurrentHashMap、IdentityHashMap、WeakHashMap、EnumMap 的语义差异与适用场景,并实战 Map 接口的默认方法。随后从哈希函数、冲突解决、装载因子讲到"数组+链表+红黑树"三段式结构的必然性,证明容量取 2 的幂时 (n-1)&hash 与取模的数学等价性。核心部分逐段精读 JDK 8 HashMap 源码:hash() 扰动、tableSizeFor、putVal、resize 高低位拆分、tr
Kafka 让数据稳稳流起来,Spark/Flink 让数据算得又快又准,HBase 让海量数据存得下查得快,但"用 SQL 把 HDFS 上的海量数据按业务口径算成报表"这件事,最早靠手写 MapReduce——又慢又难维护。Hive 正是为此而生:把 HQL 翻译成分布式计算作业,让数据工程师用熟悉的 SQL 玩转 PB 级数据。本文拆解 Hive 的架构本质、内部表与外部表、分区与分桶的取舍、ORC/Parquet 文件格式选型、MapReduce→Tez→Spark 执行引擎演进,以及 MapJoin/CBO/向量化/数据倾斜等专属优化,并与 Kafka/Spark/Flink/HBa
本文从 Collection 与 Map 两条体系出发,画出集合框架的接口继承树,讲清 List/Set/Queue/Deque 的语义边界与 AbstractXXX 骨架类的价值;深入 ArrayList 源码拆解延迟初始化、1.5 倍扩容、Arrays.copyOf 与 transient elementData 的自定义序列化;用 modCount 与 expectedModCount 解释 fail-fast 与 ConcurrentModificationException 的成因,并给出四种正确删除元素的姿势;对比 HashSet、TreeSet、LinkedHashSet 的底层
本文从 JDK 5 之前 Object 加强制转换的三大痛点出发,系统讲清泛型类、泛型方法与泛型接口三种形态及类型推断机制;深入剖析类型擦除的规则、历史动因与四大限制,并用 javap -v 的 Signature 属性、checkcast 插入点与 ACC_BRIDGE 桥接方法给出字节码级铁证;完整梳理无界、上界、下界通配符体系与捕获机制,推导 PECS 原则的来龙去脉并对照 Collections.copy 源码;最后汇总泛型数组、自限定类型、泛型异常、反射 ParameterizedType 等实战坑点与十余条高频面试题。
前端是攻击者最常触碰的门面,一次 innerHTML 用错就可能交出去整个账号。本文从浏览器同源策略讲起,把 XSS(存储型/反射型/DOM 型)、CSRF、点击劫持三大高危漏洞的成因、利用链与防御方案一次讲透:输出编码与上下文、DOMPurify 白名单、Trusted Types、Cookie 的 HttpOnly 与 SameSite、CSRF Token 与 Origin 校验、X-Frame-Options 与 CSP frame-ancestors;再补充开放重定向、postMessage 未校验 origin、依赖供应链与原型污染等易忽视风险,最后给出一份可直接落地的 CSP 配
上一页 下一页