作为一名长期从事Java开发的攻城狮,一直没有对于自身知识体系结构沉下心思来做一个全面的梳理及沉淀。有时候在沟通或者交流中会发现有些知识点停留在知道使用的层面,但是当要用自己的语言说出来原理的时候,却不能够很好的阐述。
从现在开始准备对掌握的认为重要的知识点做重新的复习及梳理,力求做到熟练运用并且流畅的表达出原理来。
下面是整理个人知识的大纲从基础到应用一步步展开的,如果你也有兴趣,欢迎一起加入进来。
Java基础篇
Java简介
Java面向对象基础
- Java的继承和多态
- 包和接口
- 异常处理
- 内部类
- 反射
- 注解
- 泛型
- 关于反射&注解&泛型的使用场景
Java 7种设计原则及23种设计模式
- Java程序设计的7大原则
- 23种常见的设计模式及在框架中的举例
- 单例模式
- 工厂模式
- 代理模式
- 构建者模式
- 策略模式
- 观察者模式
- 装饰模式
Java常用的集合及分析
- Java集合有哪些?java.utils下面那些常用的类
- List、ArrayList、LinkedList
- Set、EnumSet、TreeSet、HashSet、LinkedHashSet
- Map、EnumMap、HashMap、TreeMap、LinkedHashMap
- Queue、Deque、PriorityQueue、LinkedBlockingDeque
- Stack
- Vector
- HashMap 对象的数据结构及衍进过程。(hash算法以及怎么解决hash冲突)
- ConCurrenthashmap 怎么保证数据安全的,扩容和存储数据底层原理。
JVM
- JVM,JRE,JDK
- Java 文件的执行过程
- Java的内存布局
- JVM的垃圾回收算法
- 强引用、软引用、弱引用的概念及使用场景
- Java 的类加载过程
- JVVM Java的内存模型及零拷贝技术实践
- JVM 常用的调优参数
- JVM 线上调优工具及分析
并发编程
- 对进程和线程的理解
- Java中的线程的状态及线程模型
- 死锁是怎么出现的,线上怎么排查死锁问题
- BIO、NIO、AIO 的理解
- Netty、Redis、MQ 线程模型分析
- 线程池几种创建方式,在实际项目中怎么运用
- 阿里手册中为什么不准使用 Executors.newCachedThreadPool()
- Java 保证线程安全有哪些方式,Synchronized 、ReetrantLock、countDownLatch、Semaphore
- Volatile 关键字的用法
- 分布式锁有哪些,实际工作中有哪些用到了
- java.util.concurrent 包下面常用的类及原理
- CAS原理及AQS原理
网络通信
- TCP/IP 协议
- Http及Https 协议
- ModuBus
- SMPP及CMPP协议
数据库 MySQL篇
- Mysql的架构说明
- 业务建表的设计规范
- Mysql的索引
- Mysql的日志
- Mysql的事务及隔离级别,Mysql是怎么解决RC及RR
- Mysql部署方案
- Mysql性能调优
- Mysql 的点及工作中遇到的问题,怎么处理?一般问题怎么排查?
- 业务设计使用领域驱动模型?
Redis 篇
- Redis的线程模式及redis为什么这么快,实际速度?
- Redis 常用的方法及使用注意事项
- Redis 部署的几种模式?单机、集群、哨兵
- Redis 淘汰策略
- Redis 缓存穿透、击穿、雪崩的理解及如何避免
- Redis 持久化配置
- 常见的NoSql 与Redis之间的对比(MemoryCache、Manguo)
MQ篇
- RabbitMQ 的架构及工作流程。
- RocketMQ 的架构及工作流程。
- RocketMQ 的消息存储。
- RocketMQ 的顺序消息怎么实现。
- RabbitMQ、RocketMQ及Kafuka的区别及使用场景。
Java Web
- Spring 系统概念
- Spring 的核心架构
- Spring 的IOC及DI
- Spring Bean的生命周期
- Spring 三级缓存解决循环依赖
- Spring AOP 工作流程
- Spring 事务
- Spring MVC框架的工作流程
- Spring Bean的加载控制
- Spring MVC标准开发
- SpringBoot 的工作流程
- Spring、SpringMVC、SpringBoot、SpringStart有什么不同,分别使用在什么场景
- Spring 流程上定制化扩展
常用服务器
- Tomcat
- Nginx
- Jetty
微服务篇
- 微服务说明
- 微服务技术栈体系,Spring Cloud,Spring Cloud Alibaba
- 注册中心Nacos、Eureka 和 Zookeeper 使用区别及底层原理
- Spring Gateway 网关使用及工作流程
- Spring Gateay和Zuul的对比
- 什么是 Dubbo ,有哪些核心功能
- Dubbo协议是什么样的,怎么处理拆包及粘包。
- Feign及Robbin的工作流程、与Dubbo有什么区别,怎么选型。
- 手写一个RPC框架
- Sentinel 进行服务限流
- Skywalking 链路跟踪
- 容器化 Docker、K8s
- CD/CI
- 项目场景谈微服务的好处
分布式架构
- 分布式架构理论 CAP,数据一致性模式有哪些
- Base 模型
- Paxos 算法
- Raft 算法
- Zookeeper 数据一致性分析
- 分布式事务 ACID【 原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)】
- 事务隔离级别
- XA及TCC及Seta中怎么支持XA及TCC两种事务模式的
- 分布式锁有哪些,怎么实现?