INDEX · JAVA原理

JAVA 原理

文章索引

Java 语法、类型、集合与运行时

01-语法基础

序号文章内容
01代码块与初始化顺序局部代码块 / 静态初始化块
02assert 断言assert 语法 / 默认关闭与启用方式

02-类型系统

序号文章内容
01Integer 包装类装箱与拆箱 / Integer 缓存
02String 字符串创建与常量池 / 不可变性的意义
03Optional 可选值创建 / 读取与兜底

03-面向对象与泛型

序号文章内容
01接口、泛型与函数式接口接口语法 / 泛型通配符:PECS

04-集合框架

序号文章内容
01集合遍历方式Iterator / 增强 for

05-并发编程

序号文章内容
01synchronized 内置锁三种写法与锁对象 / 原子性与可见性保证
02volatile 关键字可见性 / 有序性
03AtomicInteger 原子整数基本操作 / CAS 思想

06-JVM与运行时

序号文章内容
01类加载机制加载、连接、初始化的过程拆解
02Java 反射获取 Class 对象 / 检查与调用成员
03Handler 概念辨析Android Handler / Java Logging Handler

07-工程实践

序号文章内容
01Java 简洁代码实践覆盖当前控制台行 / 条件中赋值

JVM

序号文章内容
01JVM概述字节码与 JIT / 可达性分析与四种引用 / class 文件结构 / arthas

案例篇

序号文章内容
011.内存泄漏/内存溢出泄漏与溢出的分辨 / top、VisualVM、arthas、Prometheus 排查链

基础篇

序号文章内容
013.垃圾回收算法评价三标准 / 标记清除、复制、整理的取舍 / 分代 GC
023.类的生命周期加载到卸载五阶段 / 验证准备解析各干什么 / InstanceKlass
034.垃圾回收器Serial、ParNew、CMS 的组合搭配 / 吞吐量与停顿时间取舍
044.类加载器Bootstrap、Extension、App 三层 / 双亲委派的动机与实现
056.运行时数据区-程序计数器程序计数器的职责:记录下一条字节码指令地址
067.栈栈帧:slot 复用 / 动态链接 / 方法出口与异常表 / Xss 设置
078.方法区类元信息与运行时常量池 / 符号引用转直接引用的时机
08JVM 基础篇拾遗方法区回收条件 / 堆与直接内存 / 图解补遗
09ShouldKnowInstanceKlass 与 Class / JDBC 上下文类加载器打破双亲委派

JUC

序号文章内容
01AbstractQueuedSynchronizer (AQS) 概览state 队列骨架速览 / 核心方法 / 典型应用与注意事项
02fork join example分治框架与数组求和示例 / 适用场景与技巧
03lightweight lock explained低竞争下用户态完成加锁解锁 / 避免内核阻塞唤醒的设计
04tomcat threadpool detail以 Tomcat 为案例看线程池 / Connector 与请求分配

1. 多线程基础

序号文章内容
011.进程与线程进程线程分辨 / 并发与并行 / 同步与异步
022.创建线程的方法Thread、Runnable、FutureTask 三种方式 / target 字段的真相
033.关于线程的常见方法start 与 run / sleep 与 yield / join 限时等待
044.设计模式两阶段终止优雅停线程 / interrupt 标志位 / 守护线程
055.线程状态OS 五态与 Java 六态对照 / 各状态的进入条件
066.小结多线程基础一章的思维导图小结

2. 并发之共享模型

序号文章内容
011. 不同线程读共享资源临界区与竞态条件 / synchronized 保原子性 / 双锁错误示范
022. 局部变量线程安全分析线程安全三条路:不共享、不可变、同步 / 局部变量为何安全
033. synchronized原理对象头与 Monitor 结构 / Owner、EntryList、WaitSet 分工
044. Wait-notifywait 释放锁而 sleep 不释放 / notifyAll 加 while 防虚假唤醒
055.park/unparkpark 暂停 unpark 恢复 / 先 unpark 不丢信号 / 对比 wait
066.活跃度与ReentrantLock可重入 / 可打断 / 锁超时 tryLock / 公平锁 / 条件变量
07模式保护性暂停与生产者消费者 / join 原理 / 线程顺序控制

3. JMM

序号文章内容
011.可见性 & Volatile工作内存导致的不可见 / volatile 保可见不保原子 / println 假象

4. 无锁并发

序号文章内容
011. Cas & volatileCAS 三操作数与原子指令 / 乐观锁思路 / 有锁无锁对比
022.原子类原子整数、引用、数组一族 / 基于 CAS 的工具全景
033. LongAdder源码base 快路径与 Cell 分散 / longAccumulate 分支拆解
044. Unsafe对象直接操作内存的后门 / 反射获取 / 手写 CAS 操作
05总结无锁并发一章的思维导图小结

5.不可变类

序号文章内容
012. 数据库连接池手写连接池:CAS 抢占连接 / wait notify 等待空闲
023.final原理写屏障保证构造期安全发布 / final 变量与指令重排
03JUC 不可变类拾遗常见不可变类清单与零散补遗

8.1 线程池

序号文章内容
012.ThreadPoolExecutor线程池状态 / 七参构造方法 / 拒绝策略
023.常用线程池 及其APIFixed、Cached、Single 三种预设 / execute 与 submit
034.异步模式线程池分工与饥饿问题 / CPU 密集与 IO 密集的线程数分配
046.tomcat线程池Connector 与 Executor 配置 / 队列工作流程
057.forkjoin分治任务的概念与使用示例
06JUC 线程池拾遗自定义线程池 / 任务调度线程池 / 零散补遗

8.2 J.U.C 原理

序号文章内容
011.AQSstate 加等待队列的骨架 / 模板方法 / 手写 MySync 最小锁
022.ReentrantLock原理state 计数实现重入 / 可打断与不可打断 / 公平非公平
033.ReentrantReadWriteLock读共享写互斥 / 只能降级不能升级 / 读锁不支持条件变量
044.StampedLock读写锁增强版 / 乐观读的工作机制
055.SemaPhore-信号量许可数控并发 / 用法与原理
066. CountDownLatch-倒计时锁等多个线程完工再汇总 / 比 join 好在哪 / 不能重置的坑
077. CycliBarrier可重用的计数栅栏 / 与 CountDownLatch 的差别
088.线程安全集合类三代方案:synchronized 容器、Collections 装饰、JUC 家族
099.concurrnetHashMap原理JDK7 头插法扩容成环的现场还原
10JUC J.U.C 原理拾遗原理章零散条目补遗

9.mysum

序号文章内容
01死锁四个必要条件 / 顺序加锁、限时等待、CAS 三种解法

JavaWeb

序号文章内容
01JavaWeb请求链路 / 分层职责

后端案例

序号文章内容
011. JavaWeb 项目准备REST 接口约定 / 为什么使用 Apifox
022. 部门管理接口清单 / Controller
033. Java 日志技术常见体系 / 快速使用
044. 多表关系与多表查询三类关系 / 笛卡尔积
055. 员工管理分页契约 / 查询参数对象
066. Spring 事务管理ACID / @Transactional
078. 批量删除员工接口 / Service 事务
089. 修改员工查询回显 / 提交修改
0910. 全局异常处理定义处理器 / 匹配顺序
1011. 员工信息统计职位统计 / 性别统计
1112. 学员管理、登录与认证链路参数绑定 / 班级与班主任回显
12JavaWeb 常见错误与排查清单Spring MVC 与分层 / 参数来源

后端高级

序号文章内容
01Spring AOP核心概念 / 通知类型
02Maven 多模块、继承、聚合与私服模块拆分 / 继承
03Spring Boot 原理配置来源与优先级 / Bean 与 IoC 容器

后端基础

序号文章内容
01JDBC 数据库连接池为什么不能每次新建连接 / DataSource 标准接口
02JDBC 核心 APIDriverManager / Connection
03JDBC 简介与快速入门为什么需要 JDBC / 七个基本步骤
04Maven 项目构建与依赖基础Maven 解决的问题 / 依赖坐标
05MyBatis 持久层基础Spring Boot 快速接入 / MyBatis 与 JDBC
06Spring Boot 配置文件YAML 语法 / properties 对照
07Web 开发与 Spring Boot 请求链路Web 服务器与 Tomcat / Spring Boot 最小接口

前端基础

序号文章内容
01Ajax 与 Axios 异步请求同步与异步 / Axios 基本用法
02HTML 与 CSS 基础HTML 文档骨架 / 文本、链接与媒体
03JavaScript 浏览器编程基础引入方式与输出 / 变量、类型与命名
04Vue 2 数据驱动页面基础最小示例 / 常用指令

总结

序号文章内容
01JavaWeb 阶段复习总图主链路 / 横切能力

Java 集合、JMM 与代码实践

序号文章内容
01Java 去样板代码 Cheatsheetrecord 干掉 DTO 样板 / var 降噪 / 现代写法清单
02知识盲区CAP 定理:一致性、可用性、分区容忍与 AP、CP 取舍
03Java 集合关系图一眼看懂集合关系 / 接口关系速查
04JMMJava 全栈思维导图:JUC、集合、IO、Spring、MyBatis 一图流