Java零基础到就业学习路线图
2024-09-09 10:16:21 0 举报
AI智能生成
Java零基础到就业学习路线图是一个系统化的学习计划,涵盖了Java编程的核心知识。整个路线图分为七个阶段,分别是:Java基础、面向对象、异常处理、数组与算法、Java集合框架、IO流与多线程和网络编程。每个阶段都提供了相关的学习资料和学习目标。在学习过程中,还需要掌握文件类型的操作,如.java文件的编译和运行,以及运用各种修饰语如public、private、protected和default来实现封装、继承和多态等面向对象编程特性。
作者其他创作
大纲/内容
SpringBoot
快速入门
SpringBoot 简介
起步依赖原理
配置管理
配置文件分类
yaml
properties
读取配置文件
profile多环境配置
技术整合
单元测试
整合MyBatis
整合springmvc
原理讲解
源码讲解
自定义starter
事件监听
容器监控
前后端分离项目实战VueBlog(博客项目)
简介
一个前后端分离博客项目
技术栈
前端
Vue
ElementUI
Axios
后端
Shiro
Redis
JWT
Springboot
Mybatis-plus
SpringMVC
开发步骤
后端
SpringBoot整合Mybatis-plus
使用Mybatis-plus生成代码
整合Shiro,Redis,Session共享
Shiro整合JWT身份校验
统一结果集
跨域解决
参数校验
登录接口开发
博客相关接口开发
前端
Vue骨架工程整合Axios
Vue骨架工程整合ElementUI
登录页面
博客列表
详情展示
SpringCloud/Alibaba
服务发现与注册Nacos/Eureka
eureka的作用分析
搭建EurekaServer
实现服务注册
Nacos介绍和安装
Nacos快速入门
Nacos与Eureka区别
Nacos服务多级存储模型
Nacos集群优先的负载均衡
Nacos的实例权重配置
Nacos的环境隔离
Nacos配置管理快速入门
配置动态刷新
多环境配置共享
跨服务配置共享
Nacos集群
远程调用/OpenFeign
服务框架课程整体介绍
认识微服务
远程调用Demo
基于RestTemplate实现远程调用
提供者与消费者
实现服务拉取和负载均衡
Ribbon负载均衡原理
Ribbon负载均衡策略
Ribbon饥饿加载
OpenFeign快速入门
OpenFeign自定义配置
OpenFeign性能优化
OpenFeign的实践
网关/Gateway
网关介绍
Gateway路由快速入门
路由断言工厂PredicateFactory
过滤器工厂FilterFactory-添加请求头
过滤器工厂-限流原理
过滤器工厂-限流实现
全局过滤器介绍
全局过滤器案例
Gateway的跨域配置
容器化技术
初始Docker
Docker和虚拟机的区别
Docker架构
Docker安装
Docker镜像操作
Docker容器命令介绍
Docker容器案例
数据卷命令
数据卷案例
自定义镜像-镜像结构
自定义镜像-Dockerfile
初始DockerCompose
部署微服务集群
Docker镜像仓库
SSM综合实战(商城类)
需求分析
adminLTE使用
adminLTE示例产品添加
表结构设计和介绍
技术栈功能介绍
项目核心功能演示
SSM环境搭建
产品管理
产品相关接口编写
产品CRUD
分页插件Pagehelper使用
订单管理
订单创建接口
订单查询接口
权限管理
权限操作Springsecurity的使用
登录登出接口编写
Springsecurity源码分析
用户接口编写
角色接口编写
资源接口编写
用户关联角色/角色关联权限
方法级别权限控制
日志管理
日志的作用
AOP实现日志记录
微服务项目实战
电商
教育
众筹
交友
就业集训
1V1 简历修改
1V1面试指导
1V1 指导度过试用期
如何熟悉项目代码?快速上手工作
团队协作工具如何使用?
公司各个部门及岗位的职责?
如何跟各岗位之间沟通?
1V1职业规划
1V1职后学习内容规划
程序员简历优化
个人信息
姓名
联系方式
邮箱
个人网站/博客
教育背景
学校名称
所学专业
学位/学历
毕业时间
工作经历
公司名称
职位
工作时间
工作内容
项目经验
项目名称
项目描述
项目职责
项目技术栈
技术技能
编程语言
框架/库
数据库
操作系统
版本控制工具
其他技能
证书与奖项
相关证书
获得奖项
个人项目
项目名称
项目描述
项目链接
自我评价
个人特点
职业目标
对编程的热爱
附加信息
个人爱好
其他语言能力
开源贡献
面试准备与技巧
准备阶段
研究公司
了解公司背景
查看公司网站
阅读公司新闻
了解公司产品或服务
准备自我介绍
强调个人优势
与职位要求对应
突出工作经验
展示成就和技能
整理简历
突出相关经验
强调成就和贡献
简洁明了
避免错别字和语法错误
研究常见面试问题
为什么离开上一份工作
你的优点和缺点是什么
为什么选择我们公司
你的职业目标是什么
解释你的工作间隙
准备问题
关于公司的问题
关于职位的问题
关于团队和文化的问题
关于发展和培训的问题
练习面试
与他人模拟面试
准备回答问题的思路
注意肢体语言和表达清晰
准备衣着和形象
穿着得体
干净整洁
注意细节和形象
查看面试地点和时间
确定面试地点
查看交通路线
提前到达面试地点
面试技巧
积极表现
展示自信和积极的态度
保持良好的眼神接触
倾听并回答问题
展示专业知识和技能
回答问题
理解问题并思考答案
简洁明了地回答问题
使用具体的例子和经验
避免模棱两可的回答
提问问题
提问有关公司和职位的问题
避免问薪资和福利问题
关注发展和机会问题
展示对公司的兴趣和热情
展示适应能力
强调适应新环境的能力
展示解决问题的能力
展示学习和成长的态度
SSM经典框架
MyBatis/MyBatisPlus
Mybatis的延迟加载
associaction
collection
Mybatis的注解开发
CRUD
Mybatis的缓存
一级缓存
二级缓存
Mybatis的数据库连接池
UNPOOLED(不使用连接池的数据源)
POOLED(使用连接池的数据源)
JNDI(使用 JNDI 实现的数据源)
Mybatis的事务
Mybatis动态SQL
<if/>
<where/>
<foreach/>
<sql/>
Mybatis的多表关联查询
一对一(多对一)
一对多
多对多
Mybatis基于xml的增删改查
根据 ID 查询
保存操作
更新操作
删除操作
模糊查询
聚合函数
Mybatis较于JDBC的优势
Mybatis映射文件常用参数
输入参数
parameterType
常用的八大基本类型
集合
Map
对象
...(也可省略)
输出参数
resultType
基本类型
引用类型
ResultMap
关联查询
数据库列名和对象属性名不一致时
Mybatis传统DAO层的开发
核心配置文件
properties
typeAliases(别名)
mappers(映射器)
<mapper resource=" " />
<mapper class=" " />
<package name=""/>
框架
框架的概念
框架的作用
软件开发的分层思想
常用的框架
Mybatis(持久层)
Spring(业务层)
SpringMVC(表现层)
传统JDBC开发存在的问题
Mybatis的入门案例
基于xml
1、搭建maven工程
2、加Mybatis依赖
3、核心配置文件
5、映射文件
6、编写接口
6、测试
基于注解
1、搭建maven工程
2、加Mybatis依赖
3、核心配置文件
4、编写接口添加注解
自定义Mybatis框架
Spring5.x
Spring得常用注解
1.创建Bean对象
@Component
@Service
@Controller
@Repository
2. 自动装配数据
@Autowired
@Qualifier
@Resource
@Value
3. 作用域范围注解
@Scope
4. 生命周期相关注解
@PostConstruct
@PreDestroy
Spring5.x得新注解
@Configuration
@ComponentScan
@Bean
@PropertySource
@Import
Spring的测试
传统的测试
Spring的测试
@RunWith 注解替换原有运行器
@ContextConfiguration 指定 spring 配置文件的位置
注解和XML配置的使用选择
Spring中的JdbcTemplate
IOC
Spring的概述
spring是什么
spring的发展历程
spring的优势
spring的体系结构
IoC的概念和作用
程序间的耦合
Spring的IoC解决耦合的思路
IoC的概念
基于XML的IoC的配置
IoC配置的细节
Bean对象创建的时机
BeanFactory
ApplicationContext
ClassPathXmlApplicationContext
FileSystemXmlApplicationContext
AnnotationConfigApplicationContext
bean标签的配置
id
class
scope
init-method
destory-method
Bean的作用域和生命周期
单例: singleton
多例: prototype
Bean实例化的方式
1,使用默认构造函数
2,静态工厂
3, 实例工厂
DI
Spring依赖注入(DI)
DI的概念
构造函数注入
set方法注入
SpEL
AOP
AOP的概念
AOP的术语
Joinpoint(连接点):
Pointcut(切入点):
Advice(通知/增强):
Aspect(切面):
织入(Weaver)
动态代理
JDK动态代理
JDK代理的问题分析
CGLIB动态代理
CGLIB代理的问题分析
基于XML的AOP配置
<aop:config> : 用于声明开始 aop 的配置
<aop:aspect id="" ref="txManager"> :配置切面
<aop:pointcut expression="execution() :切入点表达式
通知类型
前置通知:<aop:before method="" pointcut-ref=“"/>
后置通知:<aop:after-returning method="" pointcut-ref=""/>
异常通知:<aop:after-throwing method="" pointcut-ref=""/>
最终通知:<aop:after method="" pointcut-ref=""/>
环绕通知:<aop:around method="" pointcut-ref=""/>
基于注解的AOP配置
@Aspect:表明当前类是一个切面类
@Pointcut
@Before:
@AfterReturning
@AfterThrowing
@After
@Around
事务
Spring中的事务
PlatformTransactionManager:spring事务管理器
TransactionDefinition:事务相关的信息
数据库的隔离级别
spring事务的隔离级别
spring事物的传播属性
TransactionStatus:事务运行的状态信息
基于XML的事务控制
配置事务管理器
声明aop配置
配置切入点
配置事务通知属性
基于注解的事务控制
spring的主配置类
持久层相关的配置
业务层添加事务注解@Transactional
Spring5.x的新特性
JDK基线更新
反应式编程模型
核心容器更新
支持Kotlin函数式编程
测试方面的提升
SpringMVC
三大框架整合(SSM)
持久层
业务层
表现层
响应数据类型
1、字符串
视图名称
forward(请求转发)
redirect(重定向)
2、void
1、使用 request 请求转发
2、使用response重定向
3、ModelAndView
4、JSON
@ResponseBody
文件上传
文件上传的原理
第三方组件实现文件上传
配置文件上传处理器 CommonsMultipartResolver
控制器使用 MultipartFile
异常处理
自定义异常处理器类
注解@ExceptionHandler
拦截器
自定义拦截器
多拦截器执行顺序
用户登录拦截
三层架构
表现层
业务层
持久层
MVC模型
Model (模型)
View (视图)
Controller(控制器)
SpringMVC概述
执行流程
三大组件
DispatcherServlet:前端控制器
HandlerMapping:处理器映射器
HandlAdapter:处理器适配器
View Resolver:视图解析器
默认配置
SpringMVC 和 Struts2 的优略分析
相同点
1、它们都是表现层框架,都是基于 MVC 模型编写的。
2、它们的底层都离不开原始 ServletAPI。
3、它们处理请求的机制都是一个核心控制器。
不同点
1、Spring MVC 的入口是 Servlet, 而 Struts2 是 Filter
2、Spring MVC 是基于方法设计的,而 Struts2 是基于类, Struts2 每次执行都会创建一个动作类。所
以 Spring MVC 会稍微比 Struts2 快些
3、Spring MVC 使用更加简洁,同时还支持 JSR303, 处理 ajax 的请求更方便
SpringMVC入门案例
添加依赖
Spring相关依赖
SpringMVC相关的依赖
配置前端控制器
DispatcherServlet
SpringMVC配置
包扫描器
视图解析器
注解驱动
编写控制器类
@Controller
@RequestMapping
RequestMapping继承
RequestMapping的属性
SpringMVC的执行流程
参数绑定
1. servlet原生api参数绑定 HttpServletRequest , HttpServletResponse , HttpSession session
2. 绑定简单类型,String Integer
3. 绑定JavaBean 如User
4. 绑定包装对象
5. 绑定集合
6.自定义类型转换
实现 Converter
配置类型转换器
常用注解
@RequestParam
@RequestBody
@PathVariable(RESTful风格)
RESTfu设计风格
资源设计
路径
HTTP请求设计及示例
返回结果
返回值类型
Content Type(返回资源的展示方式)
常见状态码
请求处理过滤器
@RequestHeader
@CookieValue
@ModelAttribute
@SessionAttribute
计算机基础
计算机网络
速览速背
分层结构
TCP/UDP
区别
TCP三次握手,四次挥手
HTTP/HTTPS
区别
无状态
长连接、短链接
状态码
Cookie 和 Session
URI和URL
操作系统
能理解最好,不理解先背,不要花太多时间
线程和进程
区别
状态
同步
死锁
数据结构和算法
数据结构
数组
链表
栈
队列
树
堆
算法
算法基础
算法定义
算法的概念和特点
算法的分类
算法复杂度
时间复杂度
空间复杂度
常见算法
排序算法
冒泡排序
选择排序
插入排序
快速排序
查找算法
线性查找
二分查找
图算法
深度优先搜索(DFS)
广度优先搜索(BFS)
最短路径算法
动态规划算法
贪心算法
算法设计思想
分治法
动态规划
贪心算法
回溯法
递归思想
算法应用
图像处理算法
数据压缩算法
密码学算法
机器学习算法
人工智能算法
算法实现
伪代码
编程语言实现
调试和优化
算法分析
正确性分析
时间复杂度分析
空间复杂度分析
稳定性分析
算法优化
算法改进
优化时间效率
优化空间效率
算法优化技巧
剪枝
缓存
并行计算
算法应用案例
最短路径算法在导航系统中的应用
排序算法在数据处理中的应用
图像处理算法在图像编辑软件中的应用
贪心算法在任务调度中的应用
动态规划算法在背包问题中的应用
算法挑战
NP完全问题
算法的边界条件
算法的可扩展性输出结果已整理为思维导图并保存为txt格式。
设计模式(23种)
单例
工厂
代理
适配器
观察者
模板
任何学习问题均可微信:fangxinma123
Java语言基础
环境准备
Java语言概述
JDK和JRE
JDK下载与安装
JDK卸载
配置环境变量
path
classpath
Java开发工具
Notepad++
IDEA(高级)
Eclipse(不推荐)
语法基础
关键字
标识符
注释
单行注释
多行注释
文章注释
进制转换
二进制
十进制
八进制
十六进制
原码
反码
补码
常量
变量
数据类型
基本数据类型
数值型
整数类型
byte
short
int
long
浮点类型
float
double
字符型
char
布尔型
boolean
引用数据类型
类
接口
数组
运算符
算术运算符
加 +
减 -
乘 *
除 /
取模 %
自增 ++
自减 --
赋值运算符
=
+=
-=
/=
%=
比较运算符
==
!=
>
<
>=
<=
instance of
逻辑运算符
与 &
或 |
异或 ^
非 !
短路与 &&
短路或 ||
位运算符
右移 >>
左移 <<
无符号 >>>
三目运算符
(关系表达式) ? 表达式1 :表达式2
流程控制语句
顺序结构
选择结构
if
switch
循环结构
for
while
do.... while
跳转控制语句
break
continue
return
方法
定义
格式
返回值
重载
覆盖
数组
一维数组
概念
格式
数据类型[] 数组名
数据类型 数组名[]
动态初始化
初始化时只指定数组长度,由系统为数组分配初始值
静态初始化
初始化时指定每个数组元素的初始值,由系统决定数组长度
二维数组
定义
格式
初始化
Java内存分配
数组内存分配
常见数组异常
数组索引越(ArrayIndexOutOfBoundsException)
空指针异常(NullPointerException)
面向对象
面向过程
面向对象思想
面向对象特征
封装
继承
多态
对象内存图
匿名对象
关键字
private
this
static
super
final
abstract
构造方法
类的初始化过程
变量
成员变量
局部变量
静态变量
代码块
局部代码块
静态代码块
构造代码块
抽象类
接口
包
权限修饰符
public
protected
private
内部类
成员内部类
局部内部类
API-常用类
Object
hashCode()
getClass()
toString()
equals(Object obj)
finalize()
clone()
Scanner
nextInt()
nextLine()
String
判断功能
equals(Object obj)
equalsIgnoreCase(String str)
contains(String str)
startsWith(String str)
endsWith(String str)
isEmpty()
获取功能
length()
charAt(int index)
indexOf(int ch)
indexOf(String str)
indexOf(int ch,int fromIndex)
indexOf(String str,int fromIndex)
substring(int start)
substring(int start,int end)
转换功能
getBytes()
toCharArray()
valueOf(char[] chs)
valueOf(int i)
toLowerCase()
toUpperCase()
concat(String str)
替换功能
replace(char old,char new)
replace(String old,String new)
trim()
比较功能
compareTo(String str)
compareToIgnoreCase(String str)
StringBuffer
StringBuilder
Arrays(工具类)
包装类
Byte
short
Integer
Long
Float
Double
Character
Boolean
正则表达式
Math
abs(int a
子主题 2
ceil(double a)
floor(double a)
max(int a,int b)
pow(double a,double b)
random()
round(float a)
sqrt(double a)
Random
nextInt()
nextInt(int n)
System
gc()
exit(int status)
currentTimeMillis()
BigDecimal
Date
DateFormat
SimpleDateFormat
DateUtil
Calendar
集合
常见数据结构
栈:先进后出
队列: 先进先出
数组
链表
数
哈希表
Collection
泛型
Iterator
List
ArrayList: 底层数组,查询快,增删慢,线程不安全,效率高。
Vector: 底层数组,查询快,增删慢,线程安全。效率低。
LinkedList: 底层链表, 查询慢,怎删快,线程不安全,效率高
Set
HashSet: 无序,不重复
LinkedHashSet: 有序,唯一,
TreeSet: 自然排序,不重复,底层红黑树
Map
HashMap: hash表结构,可保键唯一
LinkedHashMap: 链表和哈希表,有序,
TreeMap : 红黑树:保证键排序和唯一
Collections工具类
public static <T> void sort(List<T> list)
public static <T> int binarySearch(List<?> list,T key)
public static <T> T max(Collection<?> coll)
public static void reverse(List<?> list)
public static void shuffle(List<?> list)
IO流
File类
概述: 文件和目录路径的抽象表示
构造方法
public File(String pathname)
public File(String parent,String child)
public File(File parent,String child)
创建文件
创建文件: public boolean createNewFile()
创建文件夹: public boolean mkdir()
创建多级目录文件夹: public boolean mkdirs()
删除方法
删除文件 public boolean delete()
重命名
重命名文件: public boolean renameTo(File dest)
判断功能
public boolean isDirectory()
public boolean isFile()
public boolean exists()
public boolean canRead()
public boolean canWrite()
public boolean isHidden()
基本获取功能
public String getAbsolutePath()
public String getPath()
public String getName()
public long length()
public long lastModified()
高级获取
public String[] list()
public File[] listFiles()
递归
方法自己调用自己的现象
常用的流
字节流
InputStream
FileInputStream
FileInputStream(File file)
FileInputStream(String name)
public int read()
public int read(byte[] b)
BufferedInputStream
OutputStream
FileOutputStream
public void write(int b)
public void write(byte[] b)
public void write(byte[] b,int off,int len)
FileOutputStream(File file)
FileOutputStream(String name)
BufferedOutputStream
字符流
Reader
InputStreamReader
BufferedReader 字符缓冲流
FilerReader 字符流简写
Writer
OutputStreamWriter
BufferWriter
FileWriter
数据流
DataInputStream
DataOutputStream
内存操作流
操作字节
ByteArrayInputStream
ByteArrayOutputStream
操作字符
CharArrayReader
CharArrayWriter
操作字符串
StringWriter
StringReader
打印流
字节打印流
字符打印流
标准输入输出流
System.in
System.out
随机访问流
RandomAccessFile
合并流
SequenceInputStream
SequenceOutputStream
序列化流
ObjectOutputStream
ObjectInputStream
Properties
数据库技术(MySQL)
JDBC概念
JDBC的作用
JDBC的适用场景
JDBC对象讲解
Connection
Driver
DriverManager
Statement
PreparedStatement
CallableStatement
ResultSet
ResultSetMetaData
CURD
增加
删除
修改
查询
数据库连接池
C3P0
Druid
DBCP
数据库概述
数据库简介
数据库的种类
关系型
非关系型
内存型
磁盘型
常见数据库
Oracle
Mysql
MongoDB
Redis
SQL语言分类
DDL语言的使用
DML语言的使用
DQL语言的使用
数据库约束
主键约束
外键约束
唯一约束
检查约束
默认约束
表关系
一对一
一对多
多对一
多对多
多表操作之查询
自关联查询
内连接查询
外连接查询
子查询
事务
事务的特性
原子性
一致性
隔离性
持久性
事务的隔离级别
Read Uncommited
Read Commited
Repeatable Read
Serializable
工具/中间件
IDEA
IDEA的安装
常用的配置
插件安装
常用快捷键
创建工程
工具栏介绍
Maven
Maven的安装
maven的仓库
maven生命周期
依赖管理
Git
安装与配置
基本命令
分支管理
冲突解决
仓库管理
Redis
NoSql概述
Redis数据类型
String
Hash
Set
Zset
List
Redis持久化
RDB
AOF
MQ(消息中间件)
RabbitMQ
RabbitMQ
什么是RabbitMQ?
RabbitMQ的特点
RabbitMQ的用途
RabbitMQ的架构
RabbitMQ的工作流程
RabbitMQ的消息传递模型
RabbitMQ的可靠性保证机制
安装与配置
RabbitMQ的安装步骤
RabbitMQ的配置文件
RabbitMQ的集群配置
基本概念
Exchange
Queue
Binding
Routing Key
Message
Producer
Consumer
消息传递模型
Direct Exchange
Fanout Exchange
Topic Exchange
Headers Exchange
高级特性
持久化
消息确认机制
消息优先级
消息过期时间
死信队列
延迟队列
消息轨迹
集群与高可用性
使用场景
异步任务处理
日志收集与分析
分布式系统之间的通信
发布/订阅模式
RPC调用
常见问题与解决方案
连接问题
消息丢失问题
性能调优
集群部署问题
参考资料
官方文档
教程和示例
博客文章
书籍推荐以上为RabbitMQ的相关资料思维导图。
RocketMQ
RocketMQ基本介绍
RocketMQ简介
RocketMQ的特点
RocketMQ的应用场景
RocketMQ的核心概念
Producer
Consumer
Message
Topic
Broker
Name Server
RocketMQ的架构
RocketMQ的生产者-消费者模型
消息队列的存储模型
RocketMQ的高可用架构
RocketMQ的部署和配置
RocketMQ的安装和部署
RocketMQ的配置文件
RocketMQ的集群部署
RocketMQ的监控和管理
RocketMQ的高级特性
消息的顺序性
消息的事务性
消息的广播模式
JavaWeb
前端部分
HTML
table
表单
iframe
h标签
p标签
a标签
img标签
html
body
元素
属性
CSS
css语法
盒子模型
css布局
使用css的静态页面实现
JavaScript
js语法快速入门
简介
引入方式
输出
语句
注释
变量
数据类型
对象
函数(方法)
作用域
事件
字符串
比较
条件语句
选择语句
循环
类型判断
Vue
模板语法
响应式基础
计算属性
类与样式绑定
条件渲染
列表渲染
事件处理
表单输入绑定
生命周期
监听器
模板引用
组件基础
注册
Props
事件
组件
插槽
Ajax
简介
请求与响应
Axios
简介
安装引用
Get
Post
请求拦截器
监听拦截器
后端部分
XML与Tomcat
Web/BS/CS异同点
Tomcat安装
Tomcat常见配置
Tomcat目录结构
Tomcat的启动
Tomcat的部署访问
HTTP协议与Servlet
Idea下新建web项目
Servlet入门,获取参数
Servlet继承关系
生命周期
Http和Servlet
Session
Cookie
生命周期
Session保存作用域
过滤器
过滤器简介
生命周期
处理乱码
监听器
监听器介绍
监听器的使用场景
综合练习
书城系统
需求分析
登录功能
首页列表展示
添加图书
展示购物车
结算
订单
注册
验证码
使用Axios和Vue改造购物车
使用Axios和Vue展示购物车详情小计
使用Axios和Vue计算数量和总金额
QQzone
需求介绍
POJO,DAO,Service划分
Controller实现解决4个异常
登录验证左侧显示好友列表
展示日志列表
修改Top页面信息
获取日志详情
回复列表,展示回复信息
控制回复
删除回复
通用代码封装jar
待你月薪过万,我们把酒言欢!
收藏
收藏
0 条评论
下一页