梳理Java开发所需的技能点,用于指导后续的学习路线,并提供系统性的查漏补缺方式。
@startmindmap Java技能树 * Java技能 ** Java基础 *** IO *** 集合 *** 多线程 **** 理论基础 ***** Java内存模型(JMM) **** 锁 ***** 队列同步器(AQS) ***** Lock接口及其实现类与支持类 **** 并发工具 ***** 集合:ConcurrentHashMap、ConcurrentLinkedQueue、BlockingQueue相关类 ***** 工作窃取:ForkJoin相关类 ***** CAS原子操作:Atomic相关类 ***** 流程控制与数据交换:CountDownLatch、Semaphore、Exchanger **** 线程池 *** JVM **** JVM内存结构 **** 垃圾回收(GC) **** 类加载机制 **** 性能调优 ** 理论基础 *** 数据结构与算法 *** 设计模式 ** 数据库 *** 基础概念 **** 事务(ACID) *** 关系型数据库 **** MySql **** Oracle *** 非关系型数据库(NoSQL) **** Redis **** MongoDB ** 开发框架 *** Spring **** SpringMVC **** SpringBoot **** SpringCloud **** SpringDataJPA *** ORM **** Mybatis **** Hibernate *** 服务调用 **** Dubbo ** 中间件 *** 缓存 **** Redis **** Memcache **** Guava **** Ehcache *** 消息 **** Kafka **** RabbitMQ *** 部署 **** Apache **** Nginx **** Tomcat **** Jboss *** 搜索引擎 **** Elasticsearch *** 协调服务 **** ZooKeeper ** 开发与运维工具 *** Git *** Maven *** Linux *** 脚本 **** Python **** Shell *** 容器 **** Docker **** Kubernetes *** CI/CD **** Jenkins ** 分布式架构 *** 基础概念 **** CAP:一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance) **** 三高:高并发、高性能、高可用 *** 分布式服务(微服务治理) **** 服务注册与发现 ***** Nacos ***** Eureka **** 服务调用 ***** Feign ***** RPC(Dubbo) **** 负载均衡 ***** SpringCloudLoadBalancer ***** Ribbon **** 配置管理 ***** SpringCloudConfig ***** Nacos **** 网关 ***** SpringCloudGateway ***** Zuul **** 熔断降级 ***** SpringCloudCircuitBreaker ***** Sentinel ***** Hystrix ***** Resilience4j *** 分布式缓存 *** 分布式消息队列 *** 分布式日志服务 **** ELK *** 分布式监控与链路追踪 **** Prometheus **** Zipkin + Sleuth **** Sentinel *** 分布式锁 *** 分布式事务 @endmindmap
上图中,相同的概念会尽量放在一起,但根据关注点的不同,相同的概念也可能会体现在不同的节点下面(如:Redis可以同时出现在中间件与分布式缓存中,中间件中的Redis更关注Redis的基础特性,而分布式缓存更关注Redis的分布式特性)。
有部分概念比较相近,需要注意它们之间的区别,如:多线程下的Java内存模型与JVM下的JVM内存结构,两者不是同一个概念。
同时,由于技术的快速发展与个人视野的局限性,上图内容还不是很完善,后续将按需动态更新。
参考文档
- 《深入理解Java虚拟机第3版 周志明 著》
- 《Java并发编程的艺术 方腾飞 魏鹏 程晓明 著》