Java后端自学学习计划(附带学习视频)

Java后端自学学习计划(附带学习视频)

Scroll Down

一、Java基础

  • java基础语法
  • 集合
  • io
  • 多线程
  • 并发
  • 反射
  • 网络编程

注意:对于Java基础,其中集合和io是初学Java后端的时候最常用的,特别是集合。对于多线程、并发、反射和网络编程,初学后端的时候基本用不到,因为你初学的时候不会涉及到这么深的技术,当然不代表不需要会,如果你面试肯定还是要会的。

这里学习Java,建议学习Java8(windows下安装Java8并配置环境变量),因为这一块的社区比较成熟,如果你学习过程中出现问题,很快都能查找到问题所在。另外现在都已经 JDK 13 了,为什么还有这么多公司使用旧版本。Java 8 已经算好的了,有的公司还在使用 7,更有甚者还在用 6,你说是不是很 6。

之所以会出现这种状况,是因为升级版本耗时费力,最重要的是有可能影响服务的稳定性,虽然说 Java 是向后兼容的,但是谁知道是不是有坑在里面。在没有重大安全漏洞或重大性能提升的情况下,大多数公司还是以稳定性为主,既然 Java 8 已经能满足业务需求了,那就用它好了。

如果你没有Java学习视频,请看文末,我会在文末写到

二、数据库

对于数据库方面,现在基本上用的还是MySQL,所以我认为还是学习MySQL。对于MySQL版本的选择,建议选择MySQL5.7版本。现在普遍使用的仍然是5.5、5.6和5.7,对于MySQL8,不建议学习,一方面社区不成熟,而且未知的坑.....还没人踩过(O(∩_∩)O)
安装教程:windows下的MySQL5.7的下载、安装以及配置环境变量
学习网站,其实 菜鸟教程 也不错,用来入门MySQL。有一个软件叫做NavicatforMySQL下载NavicatforMySQL),这个软件相当于MySQL的图形化界面,不用使用CMD来操作MySQL了,当然这个软件也可以使用命令行语句,初学MySQL还是不建议使用这个软件,一些MySQL语句还是多练习比较好,特别是多表复杂查询,在后来的学习过程中会经常用到。

如果你没有MySQL学习视频,请看文末,我会在文末写到

三、web入门

在如今 Java 开发中,很多开发者只知道怎么使用框架,但根本不懂 Web 的一些知识点,其实框架很多,但都基本是一个套路,所以在你学习任何框架前,请把 Web 基础打好,把 Web 基础打好了,看框架真的是如鱼得水。

关于Http协议,这篇文章就写得很清楚:一文带你看清 HTTP 所有概念

关于JSP,你只要了解它其实就是一个Servlet就行了,关于它的一些标签用法,我认为可以直接忽略,因为现在互联网几乎没哪间公司还用 JSP,除了一些老旧的项目。现在都是流行前后端分离,单页应用,后端只做 API接口的时代了,所以时间宝贵,把这些时间重点放在Servlet规范上面吧。

关于Tomcat,它是一个Web容器,我们写的后端项目都要部署到Web容器才能运行,它其实是一个遵循 Http,通过Socket通信与客户端进行交互的服务端程序:TOMCAT原理详解及请求过程

四、Web主流框架(SSM)

当然也有一个ssh,ssh通常使用 Struts2为控制器(controller) ,spring 为事务层(service), hibernate 负责持久层(dao)
ssm通常使用 springMVC为控制器(controller) ,spring 为事务层(service), MyBatis 负责持久层(dao)

注意:以下内容,没学过的可能有点蒙...主要看总结就行了。

SSH和SSM区别对比:
Struts2和SpringMVC
相同:

  • spring依赖注入(DI)来管理各层的组件,都是使用AOP切面编程 来管理事务,日志,权限等。

不同:

  • 1.Struts2 和 SpringMVC 控制视图和模型的交互机制不同
  • 2.Strtus2是Action类级别,SpringMVC是方法级别,更容易实现RESTful风格。

Hibernate 和 MyBatis 两种ORM框架对比

相同:

  • 1.Hibernate与MyBatis都是可以通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory生成Session,最后由Session来开启事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session 的生命周期都差不多
  • 2.Hibernate和MyBatis都支持JDBC和JTA事务处理

不同:

  • 1.MyBatis可以进行更为细致的SQL优化,可以减少查询字段
  • 2.MyBatis容易掌握,而Hibernate门槛较高
  • 3.Hibernate的Dao层开发比MyBatis简单,MyBatis需要维护SQL和结果映射
  • 4.Hibernate对 对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便
  • 5.Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同的SQL
  • 6.Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳,更新操作不能指定刷新指定记录,会清空整个表,但是也可以使用第三方缓存
  • 7.Hibernate 封装性好 屏蔽了数据库差异,自动生成SQL语句。应对数据库变化能力较弱,SQL语句优化困难
  • 8.MyBatis仅实现了SQL语句和对象的映射,需要针对的数据库写SQL语句,应对数据库变化能力较强,SQL语句优化比较方便

总结:SSM和SSH不同主要在MVC实现方式,以及ORM持久化方面不同(Hiibernate与Mybatis)
SSM越来越轻量级配置,将注解开发发挥到极致,且ORM实现更加灵活,SQL优化更简便;
SSH较注重配置开发,其中的Hiibernate对JDBC的完整封装更面向对象,对增删改查的数据维护更自动化,但SQL优化方面较弱,且入门门槛稍高。

综上初学者建议SSM,当然目前很多项目已经不是用SSM开发了,但是为什么还要学习呢,因为很多古董级别的项目可能还是SSM开发的,你需要懂啊,另外对于SSM其中对重要的是Spring,Spring全家桶的很多框都是非常流行的,而且Spring是基础。You need to know!

Spring 其核心思想就是 IOC 和 AOP:

参考博客:

SpringMVC 它的思想是全部请求统一用一个 Servlet 去做请求转发与控制,这个 Servlet 叫 DispatcherServlet:

参考博客:

Mybatis 它可实现动态拼装 sql,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集,这个Mybatis框架相对比较简单。多注意:动态拼接Sql。

如果你没有SSM学习视频,请看文末,我会在文末写到

五、Web进阶(Spring Boot、spring Cloud)

学完Spring你肯定有感觉,这配置也太复杂了,写一个项目,jing是xml文件。SpringBoot 弥补了 Spring 配置上的缺点,再也不用为繁杂的 xml 费劲精力了,堪称是 Java 后端开发的颠覆者,推荐书籍「Java EE 开发的颠覆者:SpringBoot实战」

SpringCloud 是一个微服务架构,能够将项目按照业务分成一个个微服务,每个微服务都可独立部署,服务之间互相协调。当一个项目越来越大时,随之而来的是越来越难以维护,此时将项目拆分成若干个微服务、单独维护、单独部署,也可以降低项目不同业务间的耦合度。推荐书籍「Spring Cloud 与 Docker 微服务架构实战」,这本书将 Docker 与微服务完美地结合在一起,堪称完美!

当你学到这一块的时候,特别是Spring Cloud的时候可能会感觉比较吃力,这一块比较复杂,但是新技术正在向此发展,也可以学学。

如果你没有Spring Boot、spring Cloud学习视频,请看文末,我会在文末写到

六、你需要掌握的其他技术

尝试用git或者github,maven,shiro对你的项目进行升级.

  • git官网
  • git教程
  • maven

    其实maven在学习SSM的时候都应该用了...比较方便

  • shiro不推荐学习SSM的时候就学习shiro,因为这个时候整合比较麻烦,建议学习Springboot的时候,再学习shiro,这个时候整合Shiro比较方便快捷、易懂。

参考视频/博客:
SpringBoot与Shiro整合-权限管理实战视频
SpringBoot+Shiro之简单的登陆(认证和授权)

七、开发工具

工欲善其事,必先利其器,以下是我推荐的一些开发工具:

  • Intellij IDEA:Java 开发最好的 IDE,这个是公认的最好的Java编辑器,不接受反驳。

  • Chrome:Chrome浏览器就不需要解释了吧,程序员必备浏览器....

  • Postman:很好用的一个接口调试工具。

八、写在最后

如果你准备走Java后端而不走前端的话也建议学习一些前端基础和框架,比如基础的h5、css、js,框架的话比如:layui、vue至少自己在写一下自己的小项目的时候不至于前端一点不懂...以上总结,只代表个人看法,只是想分享一下关于web后端的学习路线,让对此感兴趣的人有一个启蒙吧,毕竟修为有限哈哈,如有不足之处,欢迎大佬指出。
对于学习视频,个人搜集了很多视频,为了方便自己、方便大家查找个人写了一个网站可以直接搜索相关关键字的视频。网站地址:理木客-资源搜索

视频资源会不定期补充,也欢迎大家贡献资源。分享是一种美德,欢迎关注公众号:理木客。

首页

在这里插入图片描述

Java

在这里插入图片描述

MySQL

在这里插入图片描述

SSM

在这里插入图片描述

Spring相关

在这里插入图片描述