blog
💧 Blog 是一个十年 Java 程序员的博客。
- 🔁 项目同步维护:Github | Gitee
- 📖 电子书阅读:Github Pages | Gitee 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 字节码 - 关键词:
bytecode
、asm
、javassist
- JVM 类加载 - 关键词:
ClassLoader
、双亲委派
- JVM 命令行工具 - 关键词:
jps
、jstat
、jmap
、jstack
、jhat
、jinfo
- JVM GUI 工具 - 关键词:
jconsole
、jvisualvm
、MAT
、JProfile
、Arthas
- JVM 实战 - 关键词:
配置
、调优
- Java 故障诊断 - 关键词:
CPU
、内存
、磁盘
、网络
、GC
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
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 工作流 - 关键词:
连接
、缓存
、语法分析
、优化
、执行引擎
、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 运维 🔨 - 关键词:
安装
、命令
、集群
、客户端
列式数据库
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
、错误的分布式假设
- 分布式算法 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 知识图谱 ◾ 🎯 钝悟的博客 ◾