💧 Blog 是一个十年 Java 程序员的博客。
- 🔁 项目同步维护:Github | Gitee
- 📖 电子书阅读:Github Pages | Gitee Pages
- Java 基础语法特性
- Java 基本数据类型
- Java 面向对象
- Java 方法
- Java 数组
- Java 枚举
- Java 控制语句
- Java 异常
- Java 泛型
- Java 反射
- Java 注解
- Java String 类型
- 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
- JavaAgent
- Java 容器简介 - 关键词:泛型、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、EnumSet
- Java 容器之 Queue - 关键词:Queue、Deque、ArrayDeque、LinkedList、PriorityQueue
- Java 容器之 Stream
- Java I/O 之 简介 - 关键词:BIO、NIO、AIO
- Java I/O 之 BIO - 关键词:BIO、InputStream、OutputStream、Reader、Writer、File、Socket、ServerSocket
- Java I/O 之 NIO - 关键词:NIO、Channel、Buffer、Selector、多路复用
- Java I/O 之序列化 - 关键词:Serializable、serialVersionUID、transient、Externalizable
- Java 并发简介 - 关键词:并发、线程、安全性、活跃性、性能、死锁、活锁
- Java 并发之内存模型 - 关键词:JMM、Happens-Before、内存屏障、volatile、synchronized、final、指令重排序
- Java 并发之线程 - 关键词:Thread、Runnable、Callable、Future、FutureTask、线程生命周期
- Java 并发之锁 - 关键词:锁、Lock、Condition、ReentrantLock、ReentrantReadWriteLock、StampedLock
- Java 并发之无锁 - 关键词:CAS、ThreadLocal、Immutability、Copy-on-Write
- Java 并发之 AQS - 关键词:AQS、独占锁、共享锁
- Java 并发之容器 - 关键词:ConcurrentHashMap、CopyOnWriteArrayList
- Java 并发之线程池 - 关键词:Executor、ExecutorService、ThreadPoolExecutor、Executors
- Java 并发之同步工具 - 关键词:Semaphore、CountDownLatch、CyclicBarrier
- Java 并发之分工工具 - 关键词:CompletableFuture、CompletionStage、ForkJoinPool
- Java 虚拟机简介
- Java 虚拟机之内存区域 - 关键词:
程序计数器、虚拟机栈、本地方法栈、堆、方法区、运行时常量池、直接内存、OutOfMemoryError、StackOverflowError - Java 虚拟机之垃圾收集 - 关键词:
GC Roots、Serial、Parallel、CMS、G1、Minor GC、Full GC - Java 虚拟机之字节码 - 关键词:
bytecode、asm、javassist - Java 虚拟机之类加载 - 关键词:
ClassLoader、双亲委派 - Java 虚拟机之工具 - 关键词:
jps、jstat、jmap、jstack、jhat、jinfo、jconsole、jvisualvm、MAT、JProfile、Arthas - Java 虚拟机之故障处理 - 关键词:
CPU、内存、磁盘、网络、GC - Java 虚拟机之调优 - 关键词:
配置、调优
- JavaWeb 面经
- JavaWeb 之 Servlet 指南
- JavaWeb 之 Jsp 指南
- JavaWeb 之 Filter 和 Listener
- JavaWeb 之 Cookie 和 Session
Tomcat 和 Jetty 都是 Java 比较流行的轻量级服务器。
Nginx 是目前最流行的反向代理服务器,也常用于负载均衡。
Java 项目需要通过 构建工具 来管理项目依赖,完成编译、打包、发布、生成 JavaDoc 等任务。
- 目前最主流的构建工具是 Maven,它的功能非常强大。
- Gradle 号称是要替代 Maven 等构件工具,它的版本管理确实简洁,但是需要学习 Groovy,学习成本比 Maven 高。
- Ant 功能比 Maven 和 Gradle 要弱,现代 Java 项目基本不用了,但也有一些传统的 Java 项目还在使用。
自从有了 IDE,写代码从此就告别了刀耕火种的蛮荒时代。
- Eclipse 是久负盛名的开源 Java IDE,我的学生时代一直使用它写 Java。
- 曾经抗拒从转 Intellij Idea ,但后来发现真香,不得不说,确实是目前最优秀的 Java IDE。
- 你可以在 vscode 中写各种语言,只要安装相应插件即可。如果你的项目中使用了很多种编程语言,又懒得在多个 IDE 之间切换,那么就用 vscode 来一网打尽吧。
监控/诊断 工具主要用于 Java 应用的运维。通过采集、分析、存储、可视化应用的有效数据,帮助开发者、使用者快速定位问题,找到性能瓶颈。
- 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
Java 领域比较流行的安全框架就是 shiro 和 spring-security。
shiro 更为简单、轻便,容易理解,能满足大多数基本安全场景下的需要。
spring-security 功能更丰富,也比 shiro 更复杂。值得一提的是由于 spring-security 是 spring 团队开发,所以集成 spring 和 spring-boot 框架更容易。
缓存可以说是优化系统性能的第一手段,在各种技术中都会有缓存的应用。
如果想深入学习缓存,建议先了解一下 缓存基本原理,有助于理解缓存的特性、原理,使用缓存常见的问题及解决方案。
- 数据结构和算法指南
- 复杂度分析 - 关键词:
时间复杂度、空间复杂度、大 O 表示法、复杂度量级 - 数组和链表 - 关键词:
线性表、一维数组、多维数组、随机访问、单链表、双链表、循环链表 - 栈和队列 - 关键词:
先进后出、后进先出、循环队列 - 线性表的查找
- 线性表的排序
- 树和二叉树
- 堆
- B+树
- LSM 树
- 字典树
- 红黑树
- 哈希表 - 关键词:
哈希函数、装载因子、哈希冲突、开放寻址法、拉链法 - 跳表 - 关键词:
多级索引 - 图
关系型数据库 整理主流关系型数据库知识点。
- MySQL 架构
- MySQL 存储引擎
- MySQL 索引
- MySQL 事务
- MySQL 锁
- MySQL 复制
- MySQL 优化
- MySQL 运维
- MySQL 面试 💯
- MySQL 面试之索引篇 💯
- MySQL 面试之事务和锁篇 💯
MongoDB 是一个基于文档的分布式数据库,由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系型数据库和非关系型数据库之间的产品。它是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。
MongoDB 最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
- MongoDB 简介
- MongoDB CRUD
- MongoDB 聚合
- MongoDB 索引
- MongoDB 事务
- MongoDB 建模
- MongoDB 复制
- MongoDB 分片
- MongoDB 运维
- MongoDB 面试 💯
- Redis 基本数据类型 - 关键词:
String、Hash、List、Set、Zset - Redis 高级数据类型 - 关键词:
BitMap、HyperLogLog、Geo、Stream - Redis 数据结构 - 关键词:
对象、SDS、链表、字典、跳表、整数集合、压缩列表 - Redis 内存管理 - 关键词:
定时删除、惰性删除、定期删除、LRU、LFU - Redis 持久化 - 关键词:
RDB、AOF、SAVE、BGSAVE、appendfsync - Redis 事件 - 关键词:
文件事件、时间事件 - Redis 复制 - 关键词:
SLAVEOF、SYNC、PSYNC、命令传播、心跳 - Redis 哨兵 - 关键词:
高可用、监控、选主、故障转移、Raft - Redis 集群 - 关键词:
高可用、监控、选主、故障转移、分区、Raft、Gossip - Redis 订阅 - 关键词:
订阅、SUBSCRIBE、PSUBSCRIBE、PUBLISH、观察者模式 - Redis 独立功能 - 关键词:
事务、ACID、MULTI、EXEC、DISCARD、WATCH - Redis 管道 - 关键词:
Pipeline - Redis 脚本 - 关键词:
Lua - Redis 运维 - 关键词:
安装、配置、命令、集群、客户端 - Redis 实战 - 关键词:
缓存、分布式锁、布隆过滤器 - Redis 面试 - 关键词:
面试 - Redis 面试之数据类型篇 - 关键词:
面试 - Redis 面试之应用篇 - 关键词:
面试
- HBase 快速入门
- HBase 数据模型
- HBase Schema 设计
- HBase 架构
- HBase Java API 基础特性
- HBase Java API 高级特性
- HBase Java API 高级特性之过滤器
- HBase Java API 高级特性之协处理器
- HBase 运维
- HBase 命令
- HBase 面试 💯
Elasticsearch 是一个基于 Lucene 的搜索和数据分析工具,它提供了一个分布式服务。Elasticsearch 是遵从 Apache 开源条款的一款开源产品,是当前主流的企业级搜索引擎。
- Elasticsearch 简介
- Elasticsearch 存储
- Elasticsearch 搜索(上)
- Elasticsearch 搜索(下)
- Elasticsearch 聚合
- Elasticsearch 分析
- Elasticsearch 集群
- Elasticsearch 优化
- Elasticsearch 运维
- Elasticsearch API
- ElasticSearch API 之 High Level REST Client
- Elasticsearch 面试 💯
如果你是做通信领域的开发,或者是 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 槽 - 流量控制 - 关键词:
限流、熔断、降级、计数器法、时间窗口法、令牌桶法、漏桶法 - 路由和网关 - 关键词:
路由、条件路由、脚本路由、标签路由
- 微服务简介 - 关键词:
定义、演进、利弊、如何拆分、容量规划、核心组件 - 微服务之注册和发现 - 关键词:
服务定义、注册中心、元数据、健康检查、服务订阅、一致性 - 微服务之服务调用 - 关键词:
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)
- Git
- 其他
◾ 💧 钝悟的 IT 知识图谱 ◾ 🎯 钝悟的博客 ◾