写给自己的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安全验证框架

  • 其他安全知识

  • 一致性算法

其他的还有大数据与云计算等等框架