JavaWeb学习路线

前言

大家好啊,我是汤小圆。

今天给大家推荐的是,JavaWeb学习路线,希望对大家有帮助,谢谢。

絮叨

学习途径:书+视频+实践,结合着来,食用效果最佳

单纯看书,容易枯燥

单纯看视频,会少了点自己的想法,一路都是跟着Up主的思路走

但是结合着来,看书可以品味到作者的用心良苦,看视频可以体会到学习的乐趣,各取所需,多好!

脑图

先给大家附一张脑图,这样就可以有一个大致的参考方向

JavaWeb学习路线

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语法
  • 事务特性:ACIDAtomicity原子性,Consistency一致性,Isolation隔离性,Durability持久性)
  • 索引,主键,外键

Redis,高性能的key-value数据库,主要用在缓存方面;

MongoDB,一个文档型的非关系型数据库,数据以JSON格式存储(可嵌套),存储和查询都很方便,减少了MySQL中多表联查的操作

推荐书籍:

  • MySQL必知必会【入门很好的一本书】
  • 高性能MySQL(第三版)【适合进阶】
  • Redis官网【入门很方便,命令操作一目了然】
  • Redis设计与实现(第二版)【适合进阶】

推荐视频:

  • MySQL基础+实战

5. 前端

前端也是要学的,尤其小公司,只是不需要像前端开发那么专业(当然想专业也没那么简单)

  • Vue【强烈推荐】:Vue是一套自下而上的渐进式框架

    • 支持模板语法,支持响应式(不用再手动刷新页面,当你修改了某个变量,那么视图会自动刷新)
    • 结构化代码,有了它,感觉html代码瞬间变得干净了许多

推荐书籍:

  • Vue官网

6. 消息中间件

消息中间件主要用于分布式系统,处理消息的收发;

主流的有RabbitMQKafkaRocketMQ

这里只需要学习一两个就可以,因为应用场景不一样,所以不能绝对地说哪个好用;

RabbitMQ主要用在企业内部,适合对数据一致性,可靠性要求高的场景;(推荐)

Kafka主要用在大数据方面,对数据的偶尔丢失,重复是可以容忍,适合目前互联网的大数据业务(推荐)

RokcetMQ是阿里基于Kafka的思想设计而成

  • 适用于高可用,高吞吐量的场景
  • 比如电商系统

推荐书籍:

  • RabbitMQ官网【看完这里面的前6个章节,就会对消息队列有个大致的思路】

推荐视频:

  • RabbitMQ教程 - 飞哥【很新的教程,目前我也还在看】

7. RPC框架

RPC的全称是Remote Procedure Call,即远程过程调用;

目前市面上流行的RPC框架有DubboSpringCloud;两个都推荐

Dubbo是阿里开源的一个项目,只支持Java

SpringCloud是基于多个组件构成的微服务架构,只支持Java

8. 工具

工具虽然放在最后面,但是他们的使用是贯穿全程的;

这里我最常用的是Intellij Idea神器,其次是VSCode,最后Git是版本管理工具(贯穿于前两者中间)

  • Intellij Idea:开发Web神器

    • 有社区版和专业版,他俩最大的区别就是社区版默认不支持web开发
    • 不过可以通过一些插件来间接实现
    • 比如Spring assistant插件,可以用来创建Spring项目
  • VSCode:非常受欢迎的开发神器

    • 丰富的插件市场,各种语言开发都很方便
  • Navicat:数据库的图形化管理工具

总结

上面只是简单列举了一些比较通用的知识点;

我们在逐渐学习的过程中,肯定还会学到很多相关的知识点,这里就不再一一列举了;

最后祝大家学习快乐。

后记

最后,感谢大家的观看,谢谢。

你可能感兴趣的:(JavaWeb学习路线)