写给自己的Java程序员学习路线,希望自己能够坚持下去
第一阶段
数据结构与算法
1.简单的数据结构
- 基础概念
- 数组
- 链表
- 队列
- 栈
2.树
- 二叉树
- 平衡二叉树
- 最优二叉树(哈夫曼树)
- 红黑树
- B、B+、B*树
- LSM树
3.图
- 图的基础知识和两种遍历方式
- 最小生成树(Prim算法和Kruskal算法)
- 最短路径算法(Dijkstra(迪杰斯特拉)算法和Floyd(弗洛伊德)算法)
- 拓扑排序
4.排序算法(8种排序算法和时间空间复杂度)
5.java中排序工具
- 数组排序
- 集合工具类排序
6.常见算法
- 字符串比较KMP算法
- 剪枝算法
- 布隆过滤器
- 回溯算法
- 动态规划
- 贪心
Java基础
1、java集合
- 各个java集合类
- 使用场景以及性能分析
2、常用类
- 基础类型封装类
- BeanUtil工具类
- string系列类
- java各种关键字(transient、final、static等等)
- Math系列
- system系列
3、javaIO
4、java泛型
5、多态以及实现原理(主要是内存上的结构)
6、java注解和反射
7、java中的语法糖
8、java8、9、10新特性(主要是8)
9、java异常
10、其他零碎知识点(比如创建对象的4种方式)
设计模式
1、创建型模式(5种)
2、结构性模式(7种)
3、行为性模式(11种)
JVM
1、jvm内存结构
2、类的加载机制
3、GC算法、分析、优化、工具
第二阶段
一、SSM框架
- spring(先使用)
- mybatis
- springmvc
- SSM整合(包括使用maven整合)
二、相关工具
- maven
- git
- IDEA
- eclipse
- 日志框架
- Jenkins
三、java并发编程(内容比较多)
四、java网络编程
- 序列化
- 网络编程基础(主要看书、TCP/IP这些)
- NIO
- netty
- 远程调用(RMI、Thrift、gRPC)
五、数据库
Mysql(本科学)、Oracle
nosql(redis、MongoDB)
第三阶段
一、应用服务器
Tomcat
Jboss
Jetty
Weblogic
二、linux(不需要完成整个运维师的知识、会使用和底层原理)
三、分布式系统(这里面内容很多、框架也很多)
- Dubbo
- Zookeeper
- 三大消息中间件
- 分布式缓存
- springSession
- 高并发分流ngix
- 文件系统fastDFS
- 数据扩容mycat
- Docker
四、微服务架构
- springBoot
- SpringCloud
五、安全
加密机制
shiro安全验证框架
其他安全知识
一致性算法
其他的还有大数据与云计算等等框架