技术文档归档
💧 xuegangliu.github.io 是个人的技术文档归档仓库。
- 🔁 项目同步维护:Github
- 📖 电子书阅读:Github Pages
Java
JavaSE
Java 基础特性
- Java 开发环境
- Java 基础语法特性
- Java 基本数据类型
- Java 面向对象
- Java 方法
- Java 数组
- Java 枚举
- Java 控制语句
- Java 异常
- Java 泛型
- Java 反射
- Java 注解
- Java String 类型
Java 高级特性
- Java 正则从入门到精通 - 关键词:
Pattern
、Matcher
、捕获与非捕获
、反向引用
、零宽断言
、贪婪与懒惰
、元字符
、DFA
、NFA
- Java 编码和加密 - 关键词:
Base64
、消息摘要
、数字签名
、对称加密
、非对称加密
、MD5
、SHA
、HMAC
、AES
、DES
、DESede
、RSA
- Java 国际化 - 关键词:
Locale
、ResourceBundle
、NumberFormat
、DateFormat
、MessageFormat
- Java JDK8 - 关键词:
Stream
、lambda
、Optional
、@FunctionalInterface
- Java SPI - 关键词:
SPI
、ClassLoader
Java 容器
- Java 容器简介 - 关键词:
Collection
、泛型
、Iterable
、Iterator
、Comparable
、Comparator
、Cloneable
、fail-fast
- Java 容器之 List - 关键词:
List
、ArrayList
、LinkedList
- Java 容器之 Map - 关键词:
Map
、HashMap
、TreeMap
、LinkedHashMap
、WeakHashMap
- Java 容器之 Set - 关键词:
Set
、HashSet
、TreeSet
、LinkedHashSet
、EmumSet
- Java 容器之 Queue - 关键词:
Queue
、Deque
、ArrayDeque
、LinkedList
、PriorityQueue
- Java 容器之 Stream
Java IO
- Java IO 模型 - 关键词:
InputStream
、OutputStream
、Reader
、Writer
、阻塞
- Java NIO - 关键词:
Channel
、Buffer
、Selector
、非阻塞
、多路复用
- Java 序列化 - 关键词:
Serializable
、serialVersionUID
、transient
、Externalizable
、writeObject
、readObject
- Java 网络编程 - 关键词:
Socket
、ServerSocket
、DatagramPacket
、DatagramSocket
- Java IO 工具类 - 关键词:
File
、RandomAccessFile
、System
、Scanner
Java 并发
- Java 并发简介 - 关键词:
进程
、线程
、安全性
、活跃性
、性能
、死锁
、饥饿
、上下文切换
- Java 线程基础 - 关键词:
Thread
、Runnable
、Callable
、Future
、wait
、notify
、notifyAll
、join
、sleep
、yeild
、线程状态
、线程通信
- Java 并发核心机制 - 关键词:
synchronized
、volatile
、CAS
、ThreadLocal
- Java 并发锁 - 关键词:
AQS
、ReentrantLock
、ReentrantReadWriteLock
、Condition
- Java 原子类 - 关键词:
CAS
、Atomic
- Java 并发容器 - 关键词:
ConcurrentHashMap
、CopyOnWriteArrayList
- Java 线程池 - 关键词:
Executor
、ExecutorService
、ThreadPoolExecutor
、Executors
- Java 并发工具类 - 关键词:
CountDownLatch
、CyclicBarrier
、Semaphore
- Java 内存模型 - 关键词:
JMM
、volatile
、synchronized
、final
、Happens-Before
、内存屏障
- ForkJoin 框架
Java 虚拟机
- JVM 体系结构
- JVM 内存区域 - 关键词:
程序计数器
、虚拟机栈
、本地方法栈
、堆
、方法区
、运行时常量池
、直接内存
、OutOfMemoryError
、StackOverflowError
- JVM 垃圾收集 - 关键词:
GC Roots
、Serial
、Parallel
、CMS
、G1
、Minor GC
、Full GC
- JVM 类加载 - 关键词:
ClassLoader
、双亲委派
- JVM 字节码 - 关键词:
bytecode
、asm
、javassist
- JVM 命令行工具 - 关键词:
jps
、jstat
、jmap
、jstack
、jhat
、jinfo
- JVM GUI 工具 - 关键词:
jconsole
、jvisualvm
、MAT
、JProfile
、Arthas
- JVM 实战 - 关键词:
配置
、调优
- Java 故障诊断 - 关键词:
CPU
、内存
、磁盘
、网络
、GC
JavaEE
JavaWeb
Java 服务器
Tomcat 和 Jetty 都是 Java 比较流行的轻量级服务器。
Nginx 是目前最流行的反向代理服务器,也常用于负载均衡。
Java 软件
Java 构建
Java 项目需要通过 构建工具 来管理项目依赖,完成编译、打包、发布、生成 JavaDoc 等任务。
- 目前最主流的构建工具是 Maven,它的功能非常强大。
- Gradle 号称是要替代 Maven 等构件工具,它的版本管理确实简洁,但是需要学习 Groovy,学习成本比 Maven 高。
- Ant 功能比 Maven 和 Gradle 要弱,现代 Java 项目基本不用了,但也有一些传统的 Java 项目还在使用。
Java IDE
自从有了 IDE,写代码从此就告别了刀耕火种的蛮荒时代。
- Eclipse 是久负盛名的开源 Java IDE,我的学生时代一直使用它写 Java。
- 曾经抗拒从转 Intellij Idea ,但后来发现真香,不得不说,确实是目前最优秀的 Java IDE。
- 你可以在 vscode 中写各种语言,只要安装相应插件即可。如果你的项目中使用了很多种编程语言,又懒得在多个 IDE 之间切换,那么就用 vscode 来一网打尽吧。
Java 监控诊断
监控/诊断 工具主要用于 Java 应用的运维。通过采集、分析、存储、可视化应用的有效数据,帮助开发者、使用者快速定位问题,找到性能瓶颈。
Java 工具
Java IO
JavaBean 工具
Java 模板引擎
Java 测试工具
其他
Java 框架
Spring
综合
核心
- Spring Bean
- Spring IoC
- Spring 依赖查找
- Spring 依赖注入
- Spring IoC 依赖来源
- Spring Bean 作用域
- Spring Bean 生命周期
- Spring 配置元数据
- Spring AOP
- Spring 资源管理
- Spring 校验
- Spring 数据绑定
- Spring 类型转换
- Spring EL 表达式
- Spring 事件
- Spring 国际化
- Spring 泛型处理
- Spring 注解
- Spring Environment 抽象
- SpringBoot 教程之快速入门
- SpringBoot 之属性加载
- SpringBoot 之 Profile
数据
- Spring 之数据源
- Spring 之 JDBC
- Spring 之事务
- Spring 之 JPA
- Spring 集成 Mybatis
- Spring 访问 Redis
- Spring 访问 MongoDB
- Spring 访问 Elasticsearch
Web
IO
集成
其他
ORM
安全
Java 领域比较流行的安全框架就是 shiro 和 spring-security。
shiro 更为简单、轻便,容易理解,能满足大多数基本安全场景下的需要。
spring-security 功能更丰富,也比 shiro 更复杂。值得一提的是由于 spring-security 是 spring 团队开发,所以集成 spring 和 spring-boot 框架更容易。
IO
Java 中间件
缓存
缓存可以说是优化系统性能的第一手段,在各种技术中都会有缓存的应用。
如果想深入学习缓存,建议先了解一下 缓存基本原理,有助于理解缓存的特性、原理,使用缓存常见的问题及解决方案。
流量控制
数据结构和算法
数据库
数据库综合
数据库中间件
关系型数据库
关系型数据库 整理主流关系型数据库知识点。
公共知识
Mysql 教程
Mysql 架构、Mysql 存储引擎、Mysql 索引、Mysql 事务、Mysql 锁、Mysql 高可用、Mysql 优化、Mysql 运维、Mysql 面试
其他
文档数据库
MongoDB
MongoDB 是一个基于文档的分布式数据库,由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系型数据库和非关系型数据库之间的产品。它是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。
MongoDB 最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
- MongoDB 应用指南
- MongoDB 的 CRUD 操作
- MongoDB 聚合操作
- MongoDB 事务
- MongoDB 建模
- MongoDB 建模示例
- MongoDB 索引
- MongoDB 复制
- MongoDB 分片
- MongoDB 运维
KV 数据库
Redis
Redis 基本数据类型、Redis 高级数据类型、Redis 数据结构、Redis 过期删除和内存淘汰、Redis 持久化、Redis 事件、Redis 复制、Redis 哨兵、Redis 集群、Redis 发布订阅、Redis 独立功能、Redis 管道、Redis 脚本、Redis 运维、Redis 实战、Redis 面试
列式数据库
HBase
- HBase 快速入门
- HBase 数据模型
- HBase Schema 设计
- HBase 架构
- HBase Java API 基础特性
- HBase Java API 高级特性之过滤器
- HBase Java API 高级特性之协处理器
- HBase Java API 其他高级特性
- HBase 运维
- HBase 命令
搜索引擎数据库
Elasticsearch
Elasticsearch 是一个基于 Lucene 的搜索和数据分析工具,它提供了一个分布式服务。Elasticsearch 是遵从 Apache 开源条款的一款开源产品,是当前主流的企业级搜索引擎。
- Elasticsearch 面试总结 💯
- Elasticsearch 快速入门
- Elasticsearch 简介
- Elasticsearch 索引
- Elasticsearch 查询
- Elasticsearch 高亮
- Elasticsearch 排序
- Elasticsearch 聚合
- Elasticsearch 分析器
- Elasticsearch 性能优化
- Elasticsearch Rest API
- ElasticSearch Java API 之 High Level REST Client
- Elasticsearch 集群和分片
- Elasticsearch 运维
Elastic
- Elastic 快速入门
- Elastic 技术栈之 Filebeat
- Filebeat 运维
- Elastic 技术栈之 Kibana
- Kibana 运维
- Elastic 技术栈之 Logstash
- Logstash 运维
网络
如果你是做通信领域的开发,或者是 Web 应用的开发,那就或多或少需要了解一些计算机网络的知识 。
网络综合
理解计算机网络,首先需要从宏观层面了解计算机网络通信的分层结构。最有代表性的是 OSI 七层结构模型,但现实中更流行的是五层结构模型。
了解网络分层结构,需要了解每个网络层级在网络通信中的定位,以及这个层级主要的通信设备、通信协议。
- 计算机网络面试总结
- 计算机网络指南 - 关键词:核心概念、拓扑结构、作用范围、性能指标、体系结构
- 网络分层
- 计算机网络之物理层 - 关键词:调制、解调、数字信号、模拟信号、通信媒介、信道复用
- 计算机网络之数据链路层 - 关键词:点对点信道、广播信道、
PPP
、CSMA/CD
、局域网、以太网、MAC
、适配器、集线器、网桥、交换机 - 计算机网络之网络层 - 关键词:
IP
、ICMP
、ARP
、路由 - 计算机网络之传输层 - 关键词:
UDP
、TCP
、滑动窗口、拥塞控制、三次握手 - 计算机网络之应用层 - 关键词:
HTTP
、DNS
、FTP
、TELNET
、DHCP
网络协议
网络技术
分布式
分布式综合
分布式理论
- 分布式基础理论 - 关键词:
错误的分布式假设
- 逻辑时钟 - 关键词:
逻辑时钟
、向量时钟
、版本时钟
、全序
、偏序
- CAP 和 BASE - 关键词:
ACID
、CAP
、BASE
、一致性
- 拜占庭将军问题 - 关键词:
共识
- 分布式算法 Paxos - 关键词:
共识
、Paxos
- 分布式算法 Raft - 关键词:
共识
、Raft
- 分布式算法 Gossip - 关键词:
Gossip
- ZAB 协议 - 关键词:
共识
、ZAB
、ZooKeeper
分布式协同
- 分布式协同综合
- ZooKeeper
分布式调度
- 流量控制 - 关键词:
限流
、熔断
、降级
、计数器法
、时间窗口法
、令牌桶法
、漏桶法
- 负载均衡 - 关键词:
轮询
、随机
、最少连接
、源地址哈希
、一致性哈希
、虚拟 hash 槽
- 服务路由 - 关键词:
路由
、条件路由
、脚本路由
、标签路由
- 分布式会话 - 关键词:
粘性 Session
、Session 复制共享
、基于缓存的 session 共享
- 分布式 ID - 关键词:
UUID
、自增序列
、雪花算法
、Leaf
分布式高可用
分布式通信
RPC
RPC 综合
Dubbo
MQ
MQ 综合
Kafka
RocketMQ
其他 MQ
分布式存储
编程
编程范式
编程语言
设计
架构
综合
微服务
- 微服务简介 - 关键词:
定义
、演进
、利弊
、如何拆分
、容量规划
、核心组件
- 微服务之注册和发现 - 关键词:
服务定义
、注册中心
、元数据
、健康检查
、服务订阅
、一致性
- 微服务之服务调用 - 关键词:
RPC
、通信协议
、传输方式
、序列化
- 微服务基本原理 - 关键词:
微服务
、序列化
、动态代理
、通信
、服务注册发现
、健康检查
、路由
、负载均衡
、容错处理
、优雅上线下线
、限流
、熔断
、业务分组
安全
设计模式
创建型模式
创建型模式提供了创建对象的机制, 能够提升已有代码的灵活性和可复用性。
- 简单工厂模式 (Simple Factory)
- 工厂方法模式 (Factory Method)
- 抽象工厂模式 (Abstract Factory)
- 建造者模式 (Builder)
- 原型模式 (Prototype)
- 单例模式 (Singleton)
结构型模式
结构型模式介绍如何将对象和类组装成较大的结构, 并同时保持结构的灵活和高效。
- 适配器模式 (Adapter)
- 桥接模式 (Bridge)
- 组合模式 (Composite)
- 装饰模式 (Decorator)
- 外观模式 (Facade)
- 享元模式 (Flyweight)
- 代理模式 (Proxy)
行为型模式
行为模式负责对象间的高效沟通和职责委派。
- 模板方法模式 (Template Method)
- 命令模式 (Command)
- 迭代器模式 (Iterator)
- 观察者模式 (Observer)
- 解释器模式 (Interpreter)
- 中介者模式 (Mediator)
- 职责链模式 (Chain of Responsibility)
- 备忘录模式 (Memento)
- 策略模式 (Strategy)
- 访问者模式 (Visitor)
- 状态模式 (State)
重构
UML
DevOps
CI
CD
监控
工具
- Git
- 其他
工作
方法论
规范
工具
🚪 传送
◾ 💧 IT 知识图谱 ◾