WATERDROP
💧 waterdrop 是个人的技术文档归档仓库。
# Java
# JavaSE
📚 javacore (opens new window) 是一个 Java 核心技术教程。内容包含:Java 基础特性、Java 高级特性、Java 并发、JVM、Java IO 等。
# JavaEE
# JavaWeb
- JavaWeb 面经
- JavaWeb 之 Servlet 指南
- JavaWeb 之 Jsp 指南
- JavaWeb 之 Filter 和 Listener
- JavaWeb 之 Cookie 和 Session
# 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
- JSON 序列化 - fastjson (opens new window)、Jackson (opens new window)、Gson (opens new window)
- 二进制序列化 - Protobuf (opens new window)、Thrift (opens new window)、Hessian、Kryo (opens new window)、FST (opens new window)
# JavaBean 工具
# Java 模板引擎
# Java 测试工具
# 其他
# Java 框架
# Spring Boot
# Spring Boot 基础篇
# Spring Boot 基础篇
# Spring Boot 数据篇
# Spring Boot IO 篇
# ORM
# 安全
Java 领域比较流行的安全框架就是 shiro 和 spring-security。
shiro 更为简单、轻便,容易理解,能满足大多数基本安全场景下的需要。
spring-security 功能更丰富,也比 shiro 更复杂。值得一提的是由于 spring-security 是 spring 团队开发,所以集成 spring 和 spring-boot 框架更容易。
# IO
# Java 中间件
# 缓存
缓存可以说是优化系统性能的第一手段,在各种技术中都会有缓存的应用。
如果想深入学习缓存,建议先了解一下 缓存基本原理 (opens new window),有助于理解缓存的特性、原理,使用缓存常见的问题及解决方案。
# 流量控制
# 计算机科学
# 数据结构和算法
# 数据库
# 数据库综合
# 数据库中间件
# 关系型数据库
关系型数据库 整理主流关系型数据库知识点。
# 关系型数据库综合
# Mysql
- Mysql 应用指南 ⚡
- Mysql 工作流 - 关键词:
连接
、缓存
、语法分析
、优化
、执行引擎
、redo log
、bin log
、两阶段提交
- Mysql 事务 - 关键词:
ACID
、AUTOCOMMIT
、事务隔离级别
、死锁
、分布式事务
- Mysql 锁 - 关键词:
乐观锁
、表级锁
、行级锁
、意向锁
、MVCC
、Next-key 锁
- Mysql 索引 - 关键词:
Hash
、B 树
、聚簇索引
、回表
- 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 数据类型和应用 - 关键词:
STRING
、HASH
、LIST
、SET
、ZSET
、BitMap
、HyperLogLog
、Geo
- Redis 持久化 - 关键词:
RDB
、AOF
、SAVE
、BGSAVE
、appendfsync
- Redis 复制 - 关键词:
SLAVEOF
、SYNC
、PSYNC
、REPLCONF ACK
- Redis 哨兵 - 关键词:
Sentinel
、PING
、INFO
、Raft
- Redis 集群 - 关键词:
CLUSTER MEET
、Hash slot
、MOVED
、ASK
、SLAVEOF no one
、redis-trib
- Redis 实战 - 关键词:
缓存
、分布式锁
、布隆过滤器
- Redis 运维 🔨 - 关键词:
安装
、命令
、集群
、客户端
# 搜索引擎数据库
# 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
、错误的分布式假设
- 分布式算法 Paxos - 关键词:
共识性算法
- 分布式算法 Raft - 关键词:
共识性算法
- 分布式算法 Gossip - 关键词:
数据传播
# 分布式协同
- 分布式协同综合
- 集群
- 分布式复制
- 分区
- 选主
- ZooKeeper
# 分布式调度
- 服务路由 - 关键词:
路由
、条件路由
、脚本路由
、标签路由
- 负载均衡 - 关键词:
轮询
、随机
、最少连接
、源地址哈希
、一致性哈希
、虚拟 hash 槽
- 流量控制 - 关键词:
限流
、熔断
、降级
、计数器法
、时间窗口法
、令牌桶法
、漏桶法
- 分布式会话 - 关键词:
粘性 Session
、Session 复制共享
、基于缓存的 session 共享
- 分布式 ID - 关键词:
UUID
、自增序列
、雪花算法
、Leaf
# 分布式高可用
# 分布式通信
# RPC
# RPC 综合
# MQ
# MQ 综合
# Kafka
# RocketMQ
# 其他 MQ
# 分布式存储
# 编程
# 编程范式
# 编程语言
# 设计
# 架构
# 综合
# 微服务
# 安全
# 设计模式
# 创建型模式
创建型模式提供了创建对象的机制, 能够提升已有代码的灵活性和可复用性。
- 简单工厂模式 (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 知识图谱 (opens new window) ◾ 🎯 钝悟的博客 (opens new window) ◾