💧 waterdrop 是个人的技术文档归档仓库。
- 🔁 项目同步维护:Github
- 📖 电子书阅读:Github 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、EmumSet
- 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 框架更容易。
缓存可以说是优化系统性能的第一手段,在各种技术中都会有缓存的应用。
如果想深入学习缓存,建议先了解一下 缓存基本原理,有助于理解缓存的特性、原理,使用缓存常见的问题及解决方案。
关系型数据库 整理主流关系型数据库知识点。
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 基本数据类型、Redis 高级数据类型、Redis 数据结构、Redis 过期删除和内存淘汰、Redis 持久化、Redis 事件、Redis 复制、Redis 哨兵、Redis 集群、Redis 发布订阅、Redis 独立功能、Redis 管道、Redis 脚本、Redis 运维、Redis 实战、Redis 面试
- HBase 快速入门
- HBase 数据模型
- HBase Schema 设计
- HBase 架构
- HBase Java API 基础特性
- HBase Java API 高级特性之过滤器
- HBase Java API 高级特性之协处理器
- HBase Java API 其他高级特性
- HBase 运维
- HBase 命令
Elasticsearch 是一个基于 Lucene 的搜索和数据分析工具,它提供了一个分布式服务。Elasticsearch 是遵从 Apache 开源条款的一款开源产品,是当前主流的企业级搜索引擎。
- Elasticsearch 简介
- Elasticsearch 索引
- Elasticsearch 映射
- Elasticsearch 查询
- Elasticsearch 高亮
- Elasticsearch 排序
- Elasticsearch 聚合
- Elasticsearch 分析器
- Elasticsearch 性能优化
- Elasticsearch Rest API
- ElasticSearch Java API 之 High Level REST Client
- Elasticsearch 集群和分片
- Elasticsearch 运维
- Elasticsearch 面试总结 💯
- 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
- 分布式基础理论 - 关键词:
指标
、挑战
、超时检测
、NTP
、逻辑时钟
- 逻辑时钟 - 关键词:
逻辑时钟
、向量时钟
、版本向量时钟
、全序
、偏序
- CAP 和 BASE - 关键词:
ACID
、CAP
、BASE
、一致性
- 拜占庭将军问题 - 关键词:
共识
- 分布式算法 Paxos - 关键词:
共识
、Paxos
- 分布式算法 Raft - 关键词:
共识
、Raft
- 分布式算法 Gossip - 关键词:
Gossip
- ZAB 协议 - 关键词:
共识
、ZAB
、ZooKeeper
- 分布式协同综合
- ZooKeeper
- 服务注册和发现 - 关键词:
服务注册
、服务发现
、元数据
- 负载均衡 - 关键词:
轮询
、随机
、最少连接
、源地址哈希
、一致性哈希
、虚拟 hash 槽
- 流量控制 - 关键词:
限流
、熔断
、降级
、计数器法
、时间窗口法
、令牌桶法
、漏桶法
- 路由和网关 - 关键词:
路由
、条件路由
、脚本路由
、标签路由
- 分布式 ID - 关键词:
UUID
、自增序列
、雪花算法
、Leaf
- 微服务简介 - 关键词:
定义
、演进
、利弊
、如何拆分
、容量规划
、核心组件
- 微服务之注册和发现 - 关键词:
服务定义
、注册中心
、元数据
、健康检查
、服务订阅
、一致性
- 微服务之服务调用 - 关键词:
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 知识图谱 ◾