前言
大家好啊,我是汤小圆。
今天给大家推荐的是,Java后端学习路线,希望对大家有帮助,谢谢。
絮叨
学习途径:书+视频+实践,结合着来,食用效果最佳
单纯看书,容易枯燥
单纯看视频,会少了点自己的想法,一路都是跟着Up主的思路走
但是结合着来,看书可以品味到作者的用心良苦,看视频可以体会到学习的乐趣,各取所需,多好!
脑图
先给大家附一张脑图,这样就可以有一个大致的参考方向
1. 计算机基础
不管什么编程,都是要先学习计算机基础的,有点像是练武之人先蹲马步
TCP/IP
协议:- 底层通信协议
- 很多消息中间件遵循的协议就是基于该协议创建的,比如
RabbitMQ
遵循的AMQP
(Advanced Message Queuing Protocol)协议
- 进程、线程:
- 进程是系统进行资源分配和调度的最基本单元
- 线程是进程的一部分
- 一个进程中可以有多个线程,多个线程共享进程的全部资源
- 计算机底层原理:了解,了解
推荐书籍:操作系统导论
2. Java基础
这里开始进入正题了,基础学起来不难,学习+实践才是最难
- 三大特性:封装(属性私有化),继承(代码复用),多态(接口+抽象)
- 集合:
List
列表,Map
键值对映射,Set
(也是列表,只是列表内的数据不能有重复) - 并发:前期学习基础时,简单过一下线程和锁,后面进阶时再深入
- 数据结构+算法:这个学了基础后,可以去专门的
Leecode
网站去刷一刷(如果你想往算法方向发展,一定要多刷)
推荐书籍:这里书籍比较多,参考Java书单-核心篇
3. SSM框架
这个属于是Web
的核心了,Spring
+ SpringMVC
+ Mybatis
Spring
现在用的不多(繁琐的xml配置),推荐SpringBoot
,但是Spring
的核心理念是一样的,DI
(依赖注入)和AOP
(面向切面编程)Mybatis
,流行的ORM
(对象关系映射)框架,将Java
对象映射到数据库
推荐书籍:
Spring实战(第五版)【Spring概念深入理解】
Spring Boot实战【Spring Boot入门参考】
Spring 官网【推荐】
推荐视频:
- Spring5 - B站 - 狂神说
- Spring Boot2 - B站 - 尚硅谷【从P112开始为 Spring Boot2 版本】
4. 数据库
Mysql
,最流行的关系型数据库之一
sql
语法- 事务特性:
ACID
(Atomicity
原子性,Consistency
一致性,Isolation
隔离性,Durability
持久性) - 索引,主键,外键
Redis
,高性能的key-value
数据库,主要用在缓存方面;
MongoDB
,一个文档型的非关系型数据库,数据以JSON
格式存储(可嵌套),存储和查询都很方便,减少了MySQL
中多表联查的操作
推荐书籍:
MySQL必知必会【入门很好的一本书】
高性能MySQL(第三版)【适合进阶】
Redis官网【入门很方便,命令操作一目了然】
Redis设计与实现(第二版)【适合进阶】
推荐视频:
5. 前端
前端也是要学的,尤其小公司,只是不需要像前端开发那么专业(当然想专业也没那么简单)
Vue
【强烈推荐】:Vue
是一套自下而上的渐进式框架- 支持模板语法,支持响应式(不用再手动刷新页面,当你修改了某个变量,那么视图会自动刷新)
- 结构化代码,有了它,感觉
html
代码瞬间变得干净了许多
推荐书籍:
6. 消息中间件
消息中间件主要用于分布式系统,处理消息的收发;
主流的有RabbitMQ
,Kafka
,RocketMQ
;
这里只需要学习一两个就可以,因为应用场景不一样,所以不能绝对地说哪个好用;
RabbitMQ
主要用在企业内部,适合对数据一致性,可靠性要求高的场景;(推荐)
Kafka
主要用在大数据方面,对数据的偶尔丢失,重复是可以容忍,适合目前互联网的大数据业务(推荐)
RokcetMQ
是阿里基于Kafka的思想设计而成
- 适用于高可用,高吞吐量的场景
- 比如电商系统
推荐书籍:
- RabbitMQ官网【看完这里面的前6个章节,就会对消息队列有个大致的思路】
推荐视频:
- RabbitMQ教程 - 飞哥【很新的教程,目前我也还在看】
7. RPC框架
RPC
的全称是Remote Procedure Call
,即远程过程调用;
目前市面上流行的RPC
框架有Dubbo
和SpringCloud
;两个都推荐
Dubbo
是阿里开源的一个项目,只支持Java
;
SpringCloud
是基于多个组件构成的微服务架构,只支持Java
;
8. 工具
工具虽然放在最后面,但是他们的使用是贯穿全程的;
这里我最常用的是Intellij Idea
神器,其次是VSCode
,最后Git
是版本管理工具(贯穿于前两者中间)
Intellij Idea
:开发Web
神器- 有社区版和专业版,他俩最大的区别就是社区版默认不支持
web
开发 - 不过可以通过一些插件来间接实现
- 比如
Spring assistant
插件,可以用来创建Spring
项目
- 有社区版和专业版,他俩最大的区别就是社区版默认不支持
VSCode
:非常受欢迎的开发神器- 丰富的插件市场,各种语言开发都很方便
Navicat
:数据库的图形化管理工具
总结
上面只是简单列举了一些比较通用的知识点;
我们在逐渐学习的过程中,肯定还会学到很多相关的知识点,这里就不再一一列举了;
最后祝大家学习快乐。
后记
最后,感谢大家的观看,谢谢。