blog
blog copied to clipboard
:dart: 钝悟的博客
blog
💧 Blog 是一个十年 Java 程序员的博客。
- 🔁 项目同步维护:Github | Gitee
- 📖 电子书阅读:Github Pages | Gitee Pages
Java
JavaSE
📚 javacore 是一个 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 是目前最流行的反向代理服务器,也常用于负载均衡。
- Tomcat 快速入门
- Tomcat 连接器
- Tomcat 容器
- Tomcat 优化
- Tomcat 和 Jetty
- Jetty
Java 软件
Java 构建
Java 项目需要通过 构建工具 来管理项目依赖,完成编译、打包、发布、生成 JavaDoc 等任务。
- 目前最主流的构建工具是 Maven,它的功能非常强大。
- Gradle 号称是要替代 Maven 等构件工具,它的版本管理确实简洁,但是需要学习 Groovy,学习成本比 Maven 高。
- Ant 功能比 Maven 和 Gradle 要弱,现代 Java 项目基本不用了,但也有一些传统的 Java 项目还在使用。
- Maven 📚
- Maven 快速入门
- Maven 教程之 pom.xml 详解
- Maven 教程之 settings.xml 详解
- Maven 实战问题和最佳实践
- Maven 教程之发布 jar 到私服或中央仓库
- Maven 插件之代码检查
- Ant 简易教程
Java IDE
自从有了 IDE,写代码从此就告别了刀耕火种的蛮荒时代。
- Eclipse 是久负盛名的开源 Java IDE,我的学生时代一直使用它写 Java。
- 曾经抗拒从转 Intellij Idea ,但后来发现真香,不得不说,确实是目前最优秀的 Java IDE。
- 你可以在 vscode 中写各种语言,只要安装相应插件即可。如果你的项目中使用了很多种编程语言,又懒得在多个 IDE 之间切换,那么就用 vscode 来一网打尽吧。
- Intellij Idea
- Eclipse
- vscode
Java 监控诊断
监控/诊断 工具主要用于 Java 应用的运维。通过采集、分析、存储、可视化应用的有效数据,帮助开发者、使用者快速定位问题,找到性能瓶颈。
- 监控工具对比
- CAT
- Zipkin
- SkyWalking
- Arthas
Java 工具
Java IO
JavaBean 工具
- Lombok
- Dozer
Java 模板引擎
- Freemark
- Velocity
- Thymeleaf
Java 测试工具
- Junit
- Mockito
- Jmeter
- JMH
其他
- Java 日志
- Java 工具包
- Reflections
- JavaMail
- Jsoup
- Thumbnailator
- Zxing
Java 框架
Spring Boot
Spring Boot 基础篇
- SpringBoot 知识图谱
- SpringBoot 基本原理
Spring Boot 基础篇
- SpringBoot 教程之快速入门
- SpringBoot 之属性加载
- SpringBoot 之 Profile
Spring Boot 数据篇
- SpringBoot 之 JDBC
- SpringBoot 之 Mybatis
- SpringBoot 之 Elasticsearch
- SpringBoot 之 MongoDB
Spring Boot IO 篇
- SpringBoot 之异步请求
- SpringBoot 之 Json
- SpringBoot 之邮件
ORM
- Mybatis 快速入门
- Mybatis 原理
安全
Java 领域比较流行的安全框架就是 shiro 和 spring-security。
shiro 更为简单、轻便,容易理解,能满足大多数基本安全场景下的需要。
spring-security 功能更丰富,也比 shiro 更复杂。值得一提的是由于 spring-security 是 spring 团队开发,所以集成 spring 和 spring-boot 框架更容易。
- Shiro
- SpringSecurity
IO
- Shiro
Java 中间件
缓存
缓存可以说是优化系统性能的第一手段,在各种技术中都会有缓存的应用。
如果想深入学习缓存,建议先了解一下 缓存基本原理,有助于理解缓存的特性、原理,使用缓存常见的问题及解决方案。
- 缓存面试题
- Java 缓存中间件
- Memcached 快速入门
- Ehcache 快速入门
- Java 进程内缓存
- Http 缓存
流量控制
- Hystrix
计算机科学
数据结构和算法
- 综合
- 数据结构和算法指南
- 复杂度分析 - 关键词:
时间复杂度、空间复杂度、大 O 表示法、复杂度量级
- 线性表
- 数组和链表 - 关键词:
线性表、一维数组、多维数组、随机访问、单链表、双链表、循环链表 - 栈和队列 - 关键词:
先进后出、后进先出、循环队列 - 线性表的查找
- 线性表的排序
- 数组和链表 - 关键词:
- 树
- 树和二叉树
- 堆
- B+树
- LSM 树
- 字典树
- 红黑树
- 哈希表 - 关键词:
哈希函数、装载因子、哈希冲突、开放寻址法、拉链法 - 跳表 - 关键词:
多级索引 - 图
数据库
数据库综合
- Nosql 技术选型
- 数据结构与数据库索引
数据库中间件
- ShardingSphere 简介
- ShardingSphere Jdbc
- 版本管理中间件 Flyway
关系型数据库
关系型数据库 整理主流关系型数据库知识点。
公共知识
- 关系型数据库面试总结 💯
- SQL 必知必会 是一个 SQL 入门教程。
- 扩展 SQL 是一个 SQL 入门教程。
Mysql
- Mysql 应用指南 ⚡
- Mysql 工作流 - 关键词:
连接、缓存、语法分析、优化、执行引擎、redo log、bin log、两阶段提交 - Mysql 事务 - 关键词:
ACID、AUTOCOMMIT、事务隔离级别、死锁、分布式事务 - Mysql 锁 - 关键词:
乐观锁、表级锁、行级锁、意向锁、MVCC、Next-key 锁 - Mysql 索引 - 关键词:
Hash、B 树、聚簇索引、回表 - Mysql 性能优化
- Mysql 运维 🔨
- Mysql 配置 🔨
- Mysql 问题
其他
- PostgreSQL 应用指南
- H2 应用指南
- SqLite 应用指南
文档数据库
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
网络协议
- 超文本传输协议 HTTP
- 域名系统协议 DNS
- 传输控制协议 TCP
- 用户数据报协议 UDP
- ICMP
网络技术
- WebSocket
- CDN
- VPN
分布式
分布式综合
- 分布式面试总结
分布式理论
- 分布式理论 - 关键词:
拜占庭将军、CAP、BASE、错误的分布式假设 - 分布式算法 Paxos - 关键词:
共识性算法 - 分布式算法 Raft - 关键词:
共识性算法 - 分布式算法 Gossip - 关键词:
数据传播
分布式协同
- 分布式协同综合
- 集群
- 分布式复制
- 分区
- 选主
- 分布式事务 - 关键词:
2PC、3PC、TCC、本地消息表、MQ 消息、SAGA - 分布式锁 - 关键词:
数据库、Redis、ZooKeeper、互斥、可重入、死锁、容错、自旋尝试
- ZooKeeper
- ZooKeeper 原理
- ZooKeeper Java Api
- ZooKeeper 命令
- ZooKeeper 运维
- ZooKeeper Acl
分布式调度
- 流量控制 - 关键词:
限流、熔断、降级、计数器法、时间窗口法、令牌桶法、漏桶法 - 负载均衡 - 关键词:
轮询、随机、最少连接、源地址哈希、一致性哈希、虚拟 hash 槽 - 服务路由 - 关键词:
路由、条件路由、脚本路由、标签路由 - 分布式会话 - 关键词:
粘性 Session、Session 复制共享、基于缓存的 session 共享 - 分布式 ID - 关键词:
UUID、自增序列、雪花算法、Leaf
分布式高可用
- 服务容错
分布式通信
RPC
RPC 综合
- RPC 基础
- RPC 进阶
- RPC 高级
- 服务注册和发现
MQ
MQ 综合
- 消息队列面试
- 消息队列基本原理
Kafka
- Kafka 快速入门
- Kafka 生产者
- Kafka 消费者
- Kafka 集群
- Kafka 可靠传输
- Kafka 存储
- Kafka 流式处理
- Kafka 运维
RocketMQ
- RocketMQ 快速入门
- RocketMQ 基本原理
- RocketMQ Faq
其他 MQ
- ActiveMQ
分布式存储
- 数据缓存 - 关键词:
进程内缓存、分布式缓存、缓存雪崩、缓存穿透、缓存击穿、缓存更新、缓存预热、缓存降级 - 读写分离
- 分库分表 - 关键词:
分片、路由、迁移、扩容、双写、聚合
编程
编程范式
- 如何学习编程语言
编程语言
- python
- shell
- scala
设计
架构
综合
- 如何设计系统
- 系统架构面试总结
- 系统架构概述
- 系统高性能架构
- 系统高可用架构
- 系统伸缩性架构
- 系统扩展性架构
- 系统安全性架构
- 大型系统核心技术
- 系统测试架构
微服务
- 微服务简介
- 微服务基本原理
安全
- 认证和授权
- OAuth2.0
设计模式
面向对象原则
创建型模式
创建型模式提供了创建对象的机制, 能够提升已有代码的灵活性和可复用性。
- 简单工厂模式 (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
- UML 快速入门
- UML 结构建模图
- UML 行为建模图
DevOps
CI
CD
监控
- 监控体系
- 链路监控
工具
- Git
- 如何优雅的玩转 Git
- Git 帮助手册
- 其他
- 正则表达式极简教程
工作
- Markdown 极简教程
🚪 传送
◾ 💧 钝悟的 IT 知识图谱 ◾ 🎯 钝悟的博客 ◾