blog icon indicating copy to clipboard operation
blog copied to clipboard

:dart: 钝悟的博客

logo

star fork commit code style

blog

💧 Blog 是一个十年 Java 程序员的博客。

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 logbin log两阶段提交
  • Mysql 事务 - 关键词:ACIDAUTOCOMMIT事务隔离级别死锁分布式事务
  • Mysql 锁 - 关键词:乐观锁表级锁行级锁意向锁MVCCNext-key 锁
  • Mysql 索引 - 关键词:HashB 树聚簇索引回表
  • 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 数据类型和应用 - 关键词:STRINGHASHLISTSETZSETBitMapHyperLogLogGeo
  • Redis 持久化 - 关键词:RDBAOFSAVEBGSAVEappendfsync
  • Redis 复制 - 关键词:SLAVEOFSYNCPSYNCREPLCONF ACK
  • Redis 哨兵 - 关键词:SentinelPINGINFORaft
  • Redis 集群 - 关键词:CLUSTER MEETHash slotMOVEDASKSLAVEOF no oneredis-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 七层结构模型,但现实中更流行的是五层结构模型。

了解网络分层结构,需要了解每个网络层级在网络通信中的定位,以及这个层级主要的通信设备、通信协议。

  • 计算机网络面试总结
  • 计算机网络指南 - 关键词:核心概念、拓扑结构、作用范围、性能指标、体系结构
  • 网络分层
    • 计算机网络之物理层 - 关键词:调制、解调、数字信号、模拟信号、通信媒介、信道复用
    • 计算机网络之数据链路层 - 关键词:点对点信道、广播信道、PPPCSMA/CD、局域网、以太网、MAC、适配器、集线器、网桥、交换机
    • 计算机网络之网络层 - 关键词:IPICMPARP、路由
    • 计算机网络之传输层 - 关键词:UDPTCP、滑动窗口、拥塞控制、三次握手
    • 计算机网络之应用层 - 关键词:HTTPDNSFTPTELNETDHCP

网络协议

  • 超文本传输协议 HTTP
  • 域名系统协议 DNS
  • 传输控制协议 TCP
  • 用户数据报协议 UDP
  • ICMP

网络技术

  • WebSocket
  • CDN
  • VPN

分布式

分布式综合

  • 分布式面试总结

分布式理论

  • 分布式理论 - 关键词:拜占庭将军CAPBASE错误的分布式假设
  • 分布式算法 Paxos - 关键词:共识性算法
  • 分布式算法 Raft - 关键词:共识性算法
  • 分布式算法 Gossip - 关键词:数据传播

分布式协同

  • 分布式协同综合
    • 集群
    • 分布式复制
    • 分区
    • 选主
    • 分布式事务 - 关键词:2PC3PCTCC本地消息表MQ 消息SAGA
    • 分布式锁 - 关键词:数据库RedisZooKeeper互斥可重入死锁容错自旋尝试
  • ZooKeeper
    • ZooKeeper 原理
    • ZooKeeper Java Api
    • ZooKeeper 命令
    • ZooKeeper 运维
    • ZooKeeper Acl

分布式调度

  • 流量控制 - 关键词:限流熔断降级计数器法时间窗口法令牌桶法漏桶法
  • 负载均衡 - 关键词:轮询随机最少连接源地址哈希一致性哈希虚拟 hash 槽
  • 服务路由 - 关键词:路由条件路由脚本路由标签路由
  • 分布式会话 - 关键词:粘性 SessionSession 复制共享基于缓存的 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 知识图谱 ◾ 🎯 钝悟的博客