Java 学习路线

一对一指导 shanhuhai 784℃ 0评论

学前注意事项

请阅读 学期注意事项>>

作业提交说明

请阅读 作业提交说明>>

一、Java基础入门(14天)

学习目标

掌握Java 基本数据结构、基本语法、 面向对象等,能够使用 Maven 构建简单应用。

这部分建议2周内过完

工具

Java 代码运行工具:

https://c.runoob.com/compile/10/

练习基本语法时可以先用这个工具

IDE(主力开发工具)
选择Intelij idea
下载地址: https://www.jetbrains.com/idea/
破解方法:http://www.dahouduan.com/2022/01/09/mian-fei-shi-yongintelij-idea-phpstorm-pycharm-gol/
使用教程: https://www.bilibili.com/video/BV1fh411y7R8?p=264
(P264-P272)

课程

文字课 https://www.liaoxuefeng.com/wiki/1252599548343744
视频课 https://www.bilibili.com/video/BV1fh411y7R8

文字课程划重点:

这块主要涉及,磁盘文件读写,先不看也可以, 后面项目中用到了回来看

先不看也可以, 后面项目中用到了回来看

正则这块后面做项目过程中如果用到了回来看下就行,先不学也可以

视频课重点:

编程语言基础 p1-p147
基本类型,循环判断 p156-p180
面向对象 p192-p251
包、封装、继承、多态 p273-p327
成员变量、接口、注解 p374-p437
异常处理 p444-p456
常用类 p460-p498
集合 p499-p547
泛型 p554-p568
多线程 p580-p597
文件操作(IO) p611-p641
网络相关 p662-p688
反射p711-p730( 可选)

重点掌握

  • 掌握 Java 基本语法(判断, 循环等)及数据结构、面向对象、异常处理、注解、泛型、集合
  • 学会使用 Maven 构建工具构建项目。

作业

完成作业一、二、三。

二、 WEB开发入门(Servlet)

了解什么是 Web 应用开发,掌握用传统的 Servlet web开发技术,能够开发一个简单的 Web 应用。

HTML +CSS (3天)

学习目标:
能够使用HTML、CSS编写简单的网页

学习资料:
文字课:
HTML5: https://www.w3cschool.cn/html/html-paragraphs.html
CSS:https://www.w3cschool.cn/css/
视频课: https://www.bilibili.com/video/BV1Y7411K7zz
(P1-P32)

重点掌握:

  • HTML
    • 掌握html,head,body,title
    • a, p,img,h1-7,
    • table,tr,td,ul,li 标签,
    • form,input,select,option,button
  • CSS
    • 基本语法
    • id 、class
    • Background
    • Font
    • 文本样式, 链接样式
    • 盒子模型
    • 边框(Border)
    • Margin,Padding
    • Display
    • Position定位
    • Float
    • 属性选择器

作业四

完成作业四

HTTP协议(0.5天)

为什么学?
HTTP协议是 WEB 开发中网络请求的基本协议,不论是手机客户端应用与服务端的交互(CS),还是浏览器与服务器的交互(BS)都是基于 HTTP 协议完成的。

学习目标:
了解域名, IP等术语,了解URL的概念,了解HTTP、请求头、响应头、响应码。
在后续项目开发中遇到不至于蒙掉。

学习资料:
https://www.liaoxuefeng.com/wiki/1016959663602400/1017804782304672
https://www.cnblogs.com/ranyonsue/p/5984001.html
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Overview(官方文档专业性较强)

重点掌握:
– http 三次握手
– http 协议和TCP 协议的关系
– http 协议请求头 ,响应头
– http 状态码
– htpp 请求方式 POST、GET、PUT、DELETE

Servlet(Tomcat,Servlet,JSP)(15天)

Tomcat 提供 HTTP 服务, 以及 Web 应用运行环境,Servlet 应用即运行于 Tomcat 之上的应用容器
JSP 即是动态网页技术,即支持在 HTML 中编写 JAVA 程序。

为什么学?
Servlet 是 Java Web 开发的基础, 后续的 SpringMVC,底层都是 Servlet

学习资料:
文字课:https://www.liaoxuefeng.com/wiki/1252599548343744/1255945497738400(课程中MVC框架部分,简单了解即可,不用深究,这部分其实是SpringMVC的底层原理,有兴趣的可以跟着看下)
视频课:
https://www.bilibili.com/video/BV1Y7411K7zz?p=99
(从P99开始 )

重点掌握:
1. Tomcat,Servlet,JSP 的概念及基本使用方法,能够开发简单的应用
2. 理解Session、Cookie的概念及使用

作业五

完成作业五

数据库 (Mysql)(7天)

为什么学?
在WEB开发中, 数据库是服务器端存储数据的主要服务。Mysql是最常用的数据库。
数据库是跟编程语言无关的, 不论你学Java、PHP、还是Go 都要用到数据库。

工具:
数据库管理客户端 Navicat 下载链接: https://pan.baidu.com/s/1_88OmaSxyiyt131Hhkr2oA 提取码: 0jg0

学习资料:

文字课:https://www.liaoxuefeng.com/wiki/1177760294764384
视频课:https://www.bilibili.com/video/BV1Vy4y1z7EX
Navicat使用:
– 教程:https://www.bilibili.com/video/BV1Ni4y1c7sG

重点掌握:

  • Mysql 安装使用
  • Navicat 的使用 (数据库管理客户端)
  • 掌握数据库,表的概念,能够创建数据库,表
  • Sql常用语句(数据库、表创建,主键、自增索引,数据增删改查, Join联表查询)
  • 掌握 Mysql 事务

JDBC(7天)

为什么学?
JDBC,这块主要是理解JDBC是一个标准的数据库操作的接口, 有了JDBC,Java可以通过统一的接口操作各种数据库。后续要学习的 Mybatis 等底层都是基于JDBC 实现的

学习资料:

文字课:https://www.liaoxuefeng.com/wiki/1252599548343744/1305152088703009
视频课:https://www.bilibili.com/video/BV1eJ411c7rf

重点掌握:

  1. 学会通过 JDBC 连接以及操作数据库进行增删改查

作业六

完成作业六

三、WEB 开发基础(框架学习)

JavaScript + jQuery +Bootstrap(3天)

为什么学?
JavaScript是网页上的编程语言,我们向后端发起请求(Ajax),控制页面HTML元素(增删改)都是通过JavaScript完成的。
jQuery 是一个 JavaScript 库,它简化我我们日常的开发,主要解决了浏览器之前的差异,简化了Dom操作,提供简洁的接口, 提高我们的开发效率。当我们做前后不分离的应用时一般都用要用到 jQuery
Bootstrap 相当于是带设计的 HTML+CSS 模板,里面有很多现成的设计好的组件,直接粘贴复制改改就能用。

学习资料:

JavaScript+jQuery文字课:
https://www.liaoxuefeng.com/wiki/1022910821149312/1023020895584256

JavaScript+jQuery视频课程:
https://www.bilibili.com/video/BV1Y7411K7zz
(P33-99)
Bootstrap4:
https://www.runoob.com/bootstrap4/bootstrap4-tutorial.html

Bootstrap4 快速过下就行, 用到什么过来查就行

重点掌握:

JavaScript:
– 基本语法、数据结构
– 常用字符串处理函数
– 循环,判断
– 函数
– 标准对象
– 面向对象
– 浏览器操作(Dom)
– jQuery
– 选择器
– Dom操作
– 事件处理
– Ajax

作业七

完成作业七

Vue +ElementUI(5天)

为什么学?

学了 Vue 就可以开发前后分离的单页应用了。
Vue 是一个前端开发框架, 主要用来开发单页应用(前后端分离)。
ElementUI 是一个基于 vue 开发的UI组件库,里面有很多现成的组件可以直接拿来用。

学习资料

Vue 快速入门:
https://www.bilibili.com/video/av76249419

Vue 视频教程:
https://www.bilibili.com/video/BV1dQ4y1A75e?p=38(p38-p67)

看完第一个视频再看第二个视频 ,有重复的可以跳过
也可以直接看第二个视频, 涉及到 ES6(EcmaScript6)的部分建议还是看下, 涉及到了一些新的JavaScript语法。

ElementUI 快速入门
https://element.eleme.cn/#/zh-CN/

重点掌握

  • Nodejs + Npm + Webpack
  • Vue
    • 基本语法
    • 理解双向绑定概念
    • 模板语法
    • v-if v-for
    • 事件处理
    • Vue 组件
    • Vue 组件 prop
    • Vue Router路由
    • Vue 跨组件调用
    • axios 请求
    • vue-cli的使用

作业九

完成作业九

Spring(3天)

为什么学?
Spring 是 Java 项目开发的基本语法之上的基础,它是基础框架, 更高级的 SpringMVC,SpringBoot 框架都是基于他构建的。

Java 是一门面向对象编程语言,每个类一个文件, 那么如何将各种各样的类,有机组织起来,让我们更高效的完成任务,这就是Spring框架的作用, 它帮我搭建了基础设施,使得我们可以更专注与业务的开发而不用太关注底层的实现。

学习目标:

掌握如何用 Maven 构建一个 Spring 项目, 掌握如何配置使用 Spring 框架
理解 IOC,AOP 概念及使用方法。

学习资料:
文字课:https://www.liaoxuefeng.com/wiki/1252599548343744/1266263217140032
– IOC 容器
– 使用AOP

视频课:https://www.bilibili.com/video/BV1Vf4y127N5
(P1-P52)

SpringMVC(3天)

为什么学?

MVC 是一套设计模式,将视图、控制器、模型三者有机的结合在一起方便我们编写业务,SpringMVC 是基于 Spring 框架构建的,并且实现了MVC的设计模式,用于方便的开发快速开发 web 应用 。

MVC的理解: 点此查看

注意:
SpringBoot 对 SpringMVC 进行了简化,实际开发中一般会直接使用SpringBoot,学习 SpringMVC 重点是理解 SpringMVC 框架的原理,以方便更好的使用 SpringBoot 开发,所以这块可以考虑快速过一下,或者先学习 SpringBoot,等后面再回来详细 SpringMVC。

学习资料:
视频课:https://www.bilibili.com/video/BV1Ry4y1574R
文字课:https://www.liaoxuefeng.com/wiki/1252599548343744/1282383921807393

这部分尽量看视频, 文字课比较简单
如果看文字课,建议把 廖雪峰 web开发部分的 ”MVC“, ”MVC“高级课程部分看了,再看这部分

重点掌握:

  1. 理解MVC概念
  2. 使用 SpringMVC 框架安装配置使用方法
  3. SpringMVC 处理请求
  4. SpringMVC 中 Session 和 Cookie 使用方法
  5. SpringMVC 中请求重定向方法
  6. SpringMVC 集成模板引擎方法

SpringBoot2(7天)

学习目标:
能够使用SpringBoot 开发Web应用

MVC 即 Model-View-Controller,模型 – 视图 – 控制器。参考学习: https://www.ruanyifeng.com/blog/2007/11/mvc.html

学习资料:
视频课 1和2 选一个学习就行, 2讲的比较深,但是难度大,根据自己的情况选择即可。

视频课1:https://www.bilibili.com/video/BV15b4y1a7yG

这门课主要通过做一个简单的CURD项目来学习 Springboot,不用全看完,学到 P95即可,后面的 MongoDB,Elasticsearch 等其他实战视频做项目的过程中用到了过来学就行了。
注意课程中涉及 Mybatis,Mybatis-Plus 的整合, 这块可以先照做就行,下一课会详细学习。

视频课2:https://www.bilibili.com/video/BV19K4y1L7MT

重点掌握:

  1. 使用 SpringBoot 框架安装配置使用方法
  2. 能够使用 SpringBoot 完成应用开发
  3. SpringBoot 整合 Mybatis+Mybatis-Plus 框架
  4. 掌握 redis 的基本使用方法, 能够使用 SpringBoot 整合 redis

数据库框架(Mybatis,Mybatis-Plus)(3天)

为什么学?

在 Springboot2 的学习中已经涉及了 Mybatis 和 Mybatis-plus 的简单应用, 这一课将详细的学习Mybatis和Mybatis-plus

学习目标:
掌握 Mybatis 对数据库的常用操作方法, 事务处理方法。
掌握在 SpringBoot 中集成 Mybatis。
掌握 Mybatis-Plus 的使用。
掌握 Lombok 的使用。

课程:

视频课:
Mybatis https://www.bilibili.com/video/BV1mW411M737(p1-p50)
MybatisPlus https://www.bilibili.com/video/BV1Ds411E76Y(p1-p42)
文字课:https://www.liaoxuefeng.com/wiki/1252599548343744/1282383540125729
重点掌握:

  1. 理解 ORM 的概念
  2. 理解 JPA,Hibernate,Mybaits的区别
  3. 能够使用 Mybaits 进行增删改查
  4. MyBatis Plus 通用CURD 用法
  5. MyBatis Plus 条件构造器

作业十

完成作业十

Spring Security(3天)

为什么学?
Spring Security 是基于 Spring 实现的用于处理用户认证,用户权限相关业务的框架,使用Spring Security框架可以帮助我们快速实现这些常用的用户登录, 权限相关的业务逻辑。

学习目标:
掌握 Spring Security 的使用方法,能够为应用添加用户登录注册权限等功能。

学习资料:
视频教程: https://www.bilibili.com/video/BV1VE411h7aL

重点掌握:
– 理解 RBAC 的概念
– 理解 Oauth2.0 概念
– 理解 JWT 概念
– 能够使用Spring Security 完成用户认证授权等功能

作业十一

完成作业十一

四、项目实战(20天)

学习目标

掌握一个成熟项目的开发过程,将所学的技术串联到一起进行开发。

学习资料

学习资料:https://www.bilibili.com/video/BV1dQ4y1A75e

该项目中涉及到了微服务以及微服务框架Spring Cloud的知识, 不用担心,跟着学就可以了,课程讲的很详细

重点掌握

  1. 学习微服务项目,模块拆分技巧
  2. 理解微服务,分布式项目概念
  3. 复习 Vue 语法
  4. 复习前端 Webpack 打包
  5. 复习使用 Spring Security 进行登录注册的开发
  6. 学习单点登录的开发

作业十二(博客项目)

完成作业十二

五、WEB开发进阶(工程及工具)

代码规范(1天)

为什么学?
学会软件开发并不难,难的是做一个健壮可靠的软件工程,学习开发规范, 可以提升自己的代码质量,提升代码的可读性, 降低线上发生故障的概率,将线上风险在早期就规避掉
学习目标: 学习优秀的代码规范, 养成良好的编码习惯
学习资料: 链接: https://pan.baidu.com/s/1qIElT9ZXZw39ZCWBXEcmnQ 提取码: 46ec
学习方法: 作为手册,随时翻阅
重点掌握:

  1. 编程约规
  2. 异常日志
  3. 安全约规
  4. Mysql 数据库
  5. 工程结构

GIT(2天)

为什么学?
Git 是一个文件版本控制工具, 他可以解决我们日常开发代码的提交记录,文件的每个版本的修改记录, 可以回退到老的修改
Git的分支功能,可以解决大型项目开发中,多人协同开发的问题。
同时支持钩子,帮助我们以后可以实现持续集成部署(CI/CD)的效果, 比如当你push 代码到代码仓库中 ,你的服务器可以自动对你的Java项目进行打包、发布,用户就可以看到新的功能了。

学习目标: 掌握 Git 代码提交、分支使用、代码合并**
学习资料: https://www.liaoxuefeng.com/wiki/896043488029600
重点掌握:

  • git add
  • git commit
  • git push
  • git fetch
  • git merge
  • git checkout
  • git checkout -b
  • git remote
  • git branch -a

Chrome 开发者工具(0.5天)

//Todo
为什么学?
WEB 开发过程中,我们经常需要查看网页结构,查看网页发送的所有请求,包括异步请求,以及查看服务器想浏览器发送的 Cookie等,使用Chrome开发者工具可以满足我们的需求。
学习目标: 掌握 Chrome 分析网页结结构、分析页面请求、查看Cookie
学习资料: https://www.bilibili.com/video/BV1Vx411W7eE
重点掌握:

  • 分析网页Dom结构
  • 分析网页请求,查看XHR请求
  • 查看Cookie,LocalStorage

Postman(0.5天)

为什么学?
在一个大型项目中,会涉及到大量的接口,如何管理测试这些接口, Postman就可以帮助我们将这些接口管理起来。

另外如果我们做前后端分离应用,多数接口会对请求头、Cookie等就行用户认证和权限认证,在浏览器中测试这些接口会很不方便, Postman可以设置每个请求的请求头,包括Cookie,可以方便的模拟测试这些接口。

学习目标: 学会使用 Postman 调试接口
学习资料: https://www.cnblogs.com/ezrealli/p/10963696.html

Linux(3天)

为什么学?
我们本地开发一般用 Windows 或 Mac,但是应用开发完成,最终要运行到 Linux上, 熟悉 Linux 是 Java 程序员的基本功。
VIM 是线上修改配置等,最常用的编辑器

学习目标:
Centos7 是常用的Linux 操作系统
掌握 Centos7 常用操作, 学会使用 ssh 密码登录、ssh公钥登录
学习资料:
Centos7 :https://www.bilibili.com/video/BV1Sv411r7vd
VIM 入门: https://www.bilibili.com/video/BV1UQ4y1z7q5
重点掌握:

  • 用户、用户组
  • 文件系统、文件权限rwx
  • 掌握命令
    • 常用命令 cd、 ls、pwd、mkdir
    • 重定向符 >> >
    • 进程查看 ps aux
    • 资源查看 top
    • 文本处理 cat、tail、grep、
    • 文本处理 sed、awk(可选)
    • 磁盘io iostat(可选)
    • 包管理 yum
    • 网络查看 netstat -an
    • 编辑器 vim
      • vim 的三种模式
      • 能够使用 vim 编辑配置
    • sshd 使用公钥登录

Nginx(2天)

学习目标:能够使用 Nginx 部署自己的 Web 应用
学习资料:https://www.bilibili.com/video/BV1zJ411w7SV
重点掌握:

  • server 指令
    • listen
    • index
    • root
    • location
  • proxy_pass
  • 开启gzip

作业十三

完成作业十三

六、就业准备(30天)

注意事项

  1. 学历、学校:二本,普通一本基本上没多大区别, 985/211 大厂更青睐
  2. 目标公司Level: 如果是二本或普通一本,先看自身实力,如果学的很好,基础扎实,项目经验多,可以尝试大厂,如果学的一般,不要太执著于去大厂,以先入行为目标。 当然即便是985/211 ,自己学的不行,也不要抱什么希望进大厂。
  3. 这阶段会涉及很多基础,偏底层原理的学习, 学习方法是大量的刷题和刷别人的面试时遇到的问题、相关知识点和概念,能够考80分就算成功, 所以刷到最后发现,每套题或者面经里的80% 你都会,就可以自信的去面试了。
  • 操作系统
  • 计算机网络
  • 数据结构与算法
  • Java 基础

简历模板及技巧

简历编写技巧及模板,参考 http://www.dahouduan.com/2022/03/07/resume-templates-and-writing-skills/

算法相关

刷题网站:
算法面试题汇总: https://leetcode-cn.com/leetbook/detail/top-interview-questions/
图解算法数据结构:https://leetcode-cn.com/leetbook/detail/illustration-of-algorithm/

参考书籍:
⭐《小灰的漫画算法》
⭐《剑指 Offer》

重点掌握:
– 时间复杂度,空间复杂度
– 评估算法的时间复杂度
– 掌握常见数据结构操作的时间复杂度,
– 了解常见的 O(1) O(N) O(NlogN)

刷题

https://www.nowcoder.com/tutorial/94/4206176d637541fa92c784a4f547e979

链接:https://pan.baidu.com/s/1M-atupjKR-TmEjaB6W_szw 提取码:6fbq 复制这段内容后打开百度网盘手机App,操作更方便哦

刷面经

校招:
https://www.nowcoder.com/discuss/experience?tagId=639&order=3&companyId=0&phaseId=1

实习:https://www.nowcoder.com/discuss/experience?tagId=639&order=3&companyId=0&phaseId=2

七、WEB开发进阶-2 (并发编程及开源服务)(可选)

  • Java 并发编程
  • 网络编程
    • Netty
  • 队列(简单了解,会用就行)
    • Rabbitmq
  • 搜索(简单了解, 会用就行)
    • Elasticserch

转载请注明:大后端 » Java 学习路线

付费咨询
喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址