序
“学习真的是一个循序渐进的过程,是需要坚持的事情。对于这篇文章,不同阶段的人可能有不同的理解,所以我花了几天时间整理了一套学习路线,供大家参考。以下学习路线适合刚学Java但还没深入,或者想进一步提高的同学。”

我把学习过程分为三个阶段。
第一阶段:基础阶段
在基础阶段,我主要分为四个部分:
一、数据结构和算法
1.简单数据结构
基本概念
排列
链表
长队
棚
2.树
平衡二叉树
最优二叉树
红色黑色的树
B,B+,B*树
LSM树
3.数字
图形的基本知识
图的遍历
最小生成树
最短路径算法和弗洛伊德算法)
拓扑排序
4.分类算法
选择排序法
冒泡排序
插入排序
快速排序
合并分类
谢尔分类
堆排序
基数排序
桶分类
排序算法的比较分析
5.java中的排序工具
数组排序
集合类排序
6.常见算法
字符串比较KMP算法
剪枝算法
布鲁姆过滤器
回溯算法
建议:对于数据结构,要掌握JAVA语言描述数据结构和常用算法操作。
第二,java基础
1.java集合
总体框架
收藏架构
列表系列
地图系列
设置系列
交互器和枚举
set的使用场景和对比分析
2.公共类
基础类型封装类
BeanUtil工具类
字符串类
Java关键字
数学系列
串联系统
3.Java的其他知识点
贾瓦约
java泛型
Java多态性
注释
Java反射
java中的语法糖
java8、9、10的新特性
Java异常
创建类的4种方法
为什么字符串类型是不可变的?
枚举类型
建议:对于Java的基础,可以先了解Java的源码层面,但是学习Java虚拟机之后,要能够从jvm的内存角度进行分析和理解。
三、设计模式
1.创作模式
2.结构模式
3.行为模式。
建议:设计模式主要用在工作中,最重要的是理解他们的想法然后灵活运用,但是设计模式衍生出来的知识点是面试中经常被问到的知识点。
四。JVM系列
1.jvm内存结构
2.类的加载机制
3.GC算法、分析、优化和工具
4.编译程序
5.优化参数等等。
建议:了解jvm的两个常见版本,java7和java8,然后对比分析,记忆。jvm是进阶的必备知识,在面试和工作中经常用到。
好了,以上是Java学习的基础阶段。看完以上阶段,基本可以进入下一阶段了。第一阶段是最枯燥的,但是当你学习了这些知识,你会发现对Java有了新的认识。我对这个阶段的总体建议是硬着头皮找出来。然后开始下一阶段。
第二阶段
零,初步了解
1、HTML+css+Javascript
2.常见的前端框架Vue、React、Jquery等。
3、jsp+servlet+jdbc
4、最简单的小项目训练。
建议:对于前端,你要了解web的整个执行过程,前端要学习基本用法。可以有大师等知识,但要想学好,就不要考虑学这个学那个。最好的方法是全部学会。学完之后可以找个项目来训练,最重要的是搞清楚原理和机理。
一. SSM框架
春天
框架
学习笔记一
SSM一体化
建议:这个阶段其实是基础阶段,因为还有SSH框架,但是已经逐渐不那么占优势了。甚至这个SSM框架正在被SpringBoot框架所取代,但是这三个框架的原则和思想都是极其重要的。
二。相关工具
专家

饭桶
想法
黯然失色
杂志
詹金斯,等等
建议:说实话,这些工具并没有严格的分类。eclipse正逐渐失去市场,但目前仍以idea和eclipse为主。像vscode这样的市场份额还是比较少的。具体可以看索引或者自己搜索。是maven和git开发者的必备工具。要学的工具太多了,先来了解一下这些常用的。
三、java网络编程
1、Java网络编程基础
计算机基础知识
套接字编程
案例项目培训
2.Java的NIO编程
3.序列化机制
Java默认序列化机制
序列化框架,如protobuf等。
4.网状框架
5.Mina框架
6.其他通信框架,如grizzly、quickserver、xSocket等。
7.远程呼叫
无线电磁指示器(Radio Magnetic Indicator的缩写)
节约
GRPC等等
公共对象请求代理结构(同Common Object Request Breaker Architecture)
建议:在这个小阶段,我在同时学习书籍、教程和博客。先把计算机网络的基础知识搞清楚再进一步学习,尽量了解各种场景下各框架的适用场景和用法。
动词 (verb的缩写)数据库ˌ资料库
1、Mysql、
2、甲骨文
3、redis、
4、MongoDB
5.搜索引擎
使用
弹性搜索
6、备忘录
建议:在这里写数据库总是不合适,因为第一阶段学习结束后,学习jdbc时需要用到数据库。这里的数据库需要深入了解,比如各种数据库的性能优化。工作极其重要。平时要了解这些数据库的使用场景,然后用那个,重点了解。
不及物动词并发编程基础
1.线程入门
2.Java内存模型
3.同步的和易变的关键字
4、以前发生过
5.锁系列
6.并发容器
并发容器的分类及比较分析
实现队列
实现队列
copy onwriterarraylist
绑定
阻塞队列
7、线程池相关知识
8.并发工具类
闭锁
栅栏
旗语
交换器
9.实战
生产者消费者问题
并发和设计模式
建议:对于并发编程,我认为它的地位应该是在最顶端。把每个知识点都讲清楚,掌握好就对了。以上只是列举了一些基础。学习中遇到其他问题,说清楚,整理好OK。另外一句话,就是至少要看源代码水平。
第二阶段要花很长时间学习,因为很难只掌握一次教程或者代码。最好的办法就是来回蹂躏这些知识,然后这个阶段做完了,下一个阶段才算是真正的提高。都是一些框架的问题。所以这个阶段分专题,因为没有严格的顺序。基本上学会用哪一块就好了。第三阶段,要对一些主流框架进行源代码分析。
第三阶段
一、应用服务器
1、Tomcat
2、Jboss
3、码头
4、Weblogic
建议:刚开始学习的时候,先接触Apache tomcat服务器,但是后来在框架学习的时候,你会发现你会认识和接触很多其他的服务器,索引上说这些服务器的份额还在飙升。
第二,linux
1.常用命令和工具的使用和安装
2.Linux权限、进程等。
3.网络相关知识,如dns
4.shell脚本和编程
5.服务代理和集群
6.基础知识
建议:说实话,linux是一个操作系统,也是我们的编程环境。弄清楚基础知识后,我们可以在后期的学习中使用那个框架,然后根据linux进行组合。这一点可以根据学习linux时的运维教程来学习,而且还挺全的。以上路线是我自己的,大家可以按照自己的计划来分配。
三。分布式的计算机系统
0.分布式系统的基础知识
1、杜博
2.坐标动物园管理员
3.消息中间件
4.分布式缓存redis和MongoDB
春季课程
6.高并发分流
7.文件系统fastDFS
8.数据扩展mycat
9、码头工人
10、卡夫卡
建议:分布式框架是为了更好更高效的数据处理。这些框架在不断更新,但目前大部分都在这里。只要环境等等配置好,在使用这些框架的时候,运行一个基本案例是非常简单的。剩下的就看我自己的业务场景了,因为我只用了其中的几个。
四。微服务架构
1、跳靴
初级课程
网络基础
与其他框架的集成
相关原则和注意事项
2、春云
建议:微服务也有很多知识,但是相对分布来说就简单多了。一步一步学就行了。
动词 (verb的缩写)安全
1.加密机制
2.shiro安全验证框架
3.其他安全知识

4.一致性算法
不及物动词大数据和云计算
这一块知识是之前上课学的,因为在网上看招聘信息的时候,经常提到有大数据云计算经验的会加分。因此,它被列出。
这是我整理的一套学习路线,参考了很多帖子和博客,我会在我的微信官方账号里不断更新这个目录里的文章。谢谢你的支持
微信官方账号:技术栈,Java的架构师。


