一起学JAVA学习路线知识体系Plus
📝 个人主页:程序员阿红🔥
🎉 支持我:点赞👍收藏⭐️留言📝
📣 系列专栏:基础知识总结🍁
Java学习完整路线就是解决学习不系统没方向感问题,总结就5个阶段
基础 (建议学习2-3个月)
工具 maven+git+idea
mysql (2星期左右)
基础前端 (2星期左右)
框架 SSM+Springboot (1到2个月左右)
项目 gitee或者githup开源项目应该很香了 (2个月左右)
找工作面试阶段 (1周至1个月,如果3个月都找不到工作简历有大问题了)
1. 数据库
建议学mysql就可以
存储过程建议了解,互联网公司都是禁止把代码写到存储过程到,但是有些传统
公司偷懒也是用存储过程写业务
优化SQL是面试必问的
2. 中间件
redis必学,高频面试
消息中间件学一个就可以,推荐RabbitMQ
学习关于微服务
互联网公司喜欢问微服务,建议可以学阿里的dubbo框架,
有能力可以再学下springcloud
包装微服务项目经验,不建议 因为 真实的微服务项目很复杂的,包装了你也讲不清楚啊
互联网公司面试是比较爱问微服务,准备下这方面的项目面试会加分
学习时间根据个人实力动态调整
上面的学习时间可以根据自己个人情况调整的,
比如你是非科班的基础毕竟差的朋友 建议基础阶段延长1个月,
有些学习能力非常强的基础可能1个月时间就搞定了
比如学习快的 需要半年时间,学习慢的可以延长1年
根据自身定位了解
Java学习知识点蛮多的,整理里很多,但是有些部分了解就行,实际工作用到非常少
Java Swing 图形界面开发 ,基本可以跳过这块知识点里
IO流(一般难)里面API非常多,基本文件读写学会就可以,不用把所有API都学会
反射(比较难),其实反射基本API了解就可以,开发框架反射用的很多,实际业务开发代码用的很少,如果你要深耕源码 那反射必须学深点
网络编程(很难),其实一本业务开发网络编程这块涉及比较少,学好非常难,建议小白们可以跳过,如果你要深耕源码 ,那请你啃下去
多线程(比较难),互联网业务真的会用到,但一般公司很少用多线程,因为他们数据量非常少,如果你要去互联网公司必须把多线程研究深点点
前端,如果你自己定位是全栈 前端的基本知识点肯定要会,大公司都流行前后端分离了,后端就只搞后端,前端基本了解就可以,目前vue用的比较多
3. Java基础语法
-
Java语言的发展史
-
JDK的下载和安装
-
DOS命令的介绍和使用
-
Path环境变量的配置
-
第一个代码HelloWorld案例
-
NotePad++软件的安装和使用
-
Java中的数据类型
-
常量的使用
-
变量的定义与使用
-
Java中代码的书写规范
-
数据类型之间的转换
-
Java中的各种运算符操作
13.if分支语句的灵活使用 -
switch分支语句
-
for循环结构
-
while循环结构
-
do…while循环结构
18.各种循环语句的区别和应用场景
19.循环跳转控制语句 -
嵌套循环的应用
-
使用循环嵌套打印直角三角形
-
IDEA开发软件
-
数组的动态初始化
-
数组的访问格式|
-
数组的静态初始化
-
Java的内存划分和作用
-
分析数组在内存中的存储
-
方法的定义和调用
-
方法的参数和返回值问题
-
方法的重载(Overload)
-
参数是基本类型和引用类型的区别
-
Debug断点调试的使用
3.1 基础一
-
类和对象的概述
-
分析对象在内存中的存储
-
成员变量和局部变量的区别
-
private关键字的应用
-
this关键字的应用
-
this关键字的内存原理
-
面向对象特性之封装
-
构造方法(Constructor)
-
构造方法的注意事项
-
标准类的定义规范
03、API基础 -
API的使用方式
-
String类的特点
-
String类的常用构造方法
-
字符串的比较规则
-
用户登录的案例
-
遍历字符串的方式
-
字符串的拼接
-
字符串的反转操作
-
StringBuilder类的作用
-
StringBuilder类的构造方法
-
StringBuilder类的常用方法
-
用StringBuilder完成字符串拼接和反转
04、集合基础 -
ArrayList集合的特点
-
ArrayList的构造方法
-
ArrayList的常用操作
-
集合存储自定义类型并遍历
3.2 基础二
-
面向对象特性之继承
-
继承的好处和弊端
-
super关键字的作用
-
继承时子父类的访问特点
-
方法的重写(Override)
-
package关键字的作用
-
import关键字的作用
-
final关键字的作用
-
static关键字的作用
-
static关键字内存分析
-
面向对象特性之多态
-
多态的好处和弊端
-
多态中成员访问的特点
-
多态中的数据类型转型
-
instanceof关键字的使用
-
抽象类的特点
-
抽象类的成员特点
-
模板设计模式
-
接口的概述
-
接口的特点和注意事项
-
类、抽象类、接口之间的关系
-
内部类的概述
-
成员内部类的使用
-
局部内部类的使用
-
匿名内部类的使用
-
匿名内部类在开发中的应用
-
Math类及其常用方法
-
System类及其常用方法
-
Object类的toString()和equals()方法
-
Objects类以及常用方法
-
BigDecimal类及其常用方法
-
二分查找原理以及代码实现
-
冒泡排序的原理分析及代码实现
-
递归的应用和注意事项
-
快速排序原理以及代码实现
-
jar包的制作以及使用
-
Arrays类及其常用方法
-
基本类型的包装类
-
自动拆箱和自动装箱
-
Optional类以及使用
-
ProcessBuilder类以及使用
-
日期Date类型及其常用方法
-
日期格式化类SimpleDateFormat
-
日历Calendar类的使用
-
Jdk8新增的日期Date API(LocalDateTime,LocalDate,LocalTime,
Instant,Period,Duration) -
NumberFormat类以及使用
-
异常的概述
-
JVM默认处理异常的方式
-
异常处理方式之try…catch
-
异常处理方式之throws
-
Throwable的常用方法
-
异常的分类和区别
-
异常的注意事项
-
自定义异常的使用
4. 集合
- 集合体系结构
- 单列集合体系的详细讲解
- 迭代器的使用
- 增强for循环的使用
- forEach方法遍历
- 并发修改异常的产生原因和解决办法
- 数据结构之栈和队列
- 数据结构之数组和链表
- ArrayList集合源码分析
- LinkedList集合源码分析
- 双列集合体系的详细讲解
- Map集合的遍历方式
- TreeSet的自然排序和比较器排序
- 数据结构之树
- 数据结构之二叉树
- 数据结构之二叉平衡树
- 数据结构之红黑树
- TreeSet(TreeMap)底层源码分析
- 数据结构之哈希表
- Jdk1.7中HashSet(HashMap)源码分析
- Jdk1.8中HashSet(HashMap)源码分析
- 泛型的使用
- 泛型通配符的使用
- 可变参数的使用和注意事项
5. IO流
- File类对文件的操作
- IO流的概述和分类
- 字节流写数据的方式
- FileOutputStream和BufferedOutputStream源码分析
- 字节流读数据的方式
- FileInputStream和BufferedInputStream源码分析
- 字节流完成视频文件的复制
- 编码表
- 字符流写数据的方法
- 字符串读数据的方法
- 字符缓冲流的使用
- 字符缓冲流的特有方法
- 标准输入输出流
- 打印流的使用
- 对象序列化流
- serialVersionUID&transient
6. 进程和线程的区别
- Java实现多线程的三种方式
- 线程API之线程名称
- 线程API之线程休眠
- 线程API之线程礼让
- 线程API之线程优先级
- 线程API之线程中断
- 线程API之后天线程
- 线程的安全问题
- 同步代码块
- 同步方法
- Lock锁
- 死锁概述以及现象演示
- 死锁诊断(jstack工具的使用)
- 线程通讯之生产者消费者问题
- 线程通讯代码实现之同步代码块
- 线程通讯代码实现之Condition实现通信
- 线程通讯代码实现之阻塞队列(BlockingQueue)实现
- 线程的状态
- 线程池概述
- 自定义线程池
- Executors创建线程池
- ThreadPoolExecutor创建线程池
- ThreadPoolExecutor原理介绍以及任务拒绝策略介绍
- volatile关键字
- JMM内存模型
- 原子性概述
- 原子类AtomicInteger类的使用
- CAS算法
- 并发容器ConcurrentHashMap原理讲解
- 并发工具类(CountDownLatch,Semaphore,CyclicBarrier,Exchanger)的使用
- Properties的用法
- 内存操作流的使用
- RandomAccessFile使用
- SequenceInputStream的使用
- 压缩流/解压缩流
7. 网络编程
- 网络编程的概述
- 网络编程的三要素之ip地址(ipv4,ipv6)
- InetAddress类的操作
- 网络编程的三要素之端口和协议的详细解释
- 网络参考模型
- UDP协议发送与接收数据
- 聊天小程序案例
- UDP协议中广播与组播
- TCP协议发送与接收数据
- 多线程下文件的上传
- NIO概述
- NIO之Buffer的使用
- NIO之Channel的使用
- NIO之Selector的使用
- 自定义非阻塞式的HTTP静态服务器
8. Lambda
- Lambda表达式的标准写法
- Lambda的省略规则
- Lambda和匿名内部类的区别
- JDK8和9对接口组成的更新
- 方法引用的介绍
- Stream流的中间操作
- Stream流的终结操作
- Stream流的收集操作
9. 反射
-
虚拟机类加载机制(概述,类加载过程,类的初始化时机)
-
类加载器(概述,分类,双亲委派机制,ClassLoader类,自定义类加载)反射机制的概述
-
获取Class类的对象
-
反射获取构造方法并使用
-
反射获取成员方法并使用
-
反射获取成员变量并使用
-
自定义非阻塞式的HTTP动态服务器
10. maven
- pom文件依赖传递介绍
- 依赖冲突的解决
- Maven项目继承的关系
- Maven项目聚合的关系
- 分模块搭建聚合项目
- 私服仓库介绍和搭建
- 本地资源上传到私服
- 从私服下载资源到本地
- 安装第三方资源到本地仓库
- 安装第三方资源到私服仓库
- Maven多环境开发
- 单元测试
- 自定义插件
11. git
- Git概述和特点
- Git的下载安装
- Git基本概念
- Git操作入门
- Git历史版本控制
- Git分支版本控制
- Git远程仓库的操作
- Git远程托管平台应用(GitHub,码云)
- Git解决冲突
- IDEA中集成Git应用
- Git常用操作命令
12.mysql
- 数据库的概念
- 常见的数据库软件
- MySQL数据库的安装卸载
- MySQL数据库的登录退出
- MySQL的目录结构
- SQL语句的分类
13.Spring框架
- Spring概述
- 耦合与解耦
- 工厂设计模式
- IoC概述及作用
- Spring基于XML的IoC配置入门
- Spring基于XML的IoC配置详解
- 依赖注入的概念
- Spring中的依赖注入
- Spring中多配置文件配置及问题分析
- Spring基于XML和Mybatis的整合
- Spring基于注解的IoC配置
- 常用注解的使用
- Spring整合Junit
- Spring高级分析之-IoC容器说明
- Spring高级分析之-组件扫描器TypeFilter
- Spring高级分析之-Import注解和自定义导入器
- Spring高级分析之-BeanFactoryPostProcessor
- Spring高级分析之-BeanPostProcessor
- Spring高级分析之-InitializingBean
- Spring高级分析之-FactoryBean
- AOP编程思想,作用,优势及实现原理分析
- 代理模式和动态代理实现AOP思想的案例
- Spring中的AOP简介和常用术语
- Spring基于XML的AOP配置
- 5种通知类型分析
- 切入点表达式详解
- Spring基于注解的AOP配置
- Spring中AOP的高级分析之-EnableAspectjAutoProxy注解的解析分析
- Spring中AOP的运行期增强的执行过程分析
- Spring中事务的API详解
- Spring基于XML的事务配置
- Spring基于注解的事务配置
- Spring事务高级分析之-TransactionTemplate源码分析
- Spring事务高级分析之-DataSourceUtils源码分析
- Spring事务高级分析之-TransactionSynchronizationManager源码分析
- Spring事务高级分析之-TransactionEventListener注解的加载过程分析
- Spring中的模板对象介绍
- JdbcTemplate和NamedParameterJdbcTemplate的使用
- RedisTemplate的使用
- Spring事务设计的设计模式分析
14. SpringMVC
1.SpringMVC概述
2.SpringMVC基于XML的环境搭建
3.SpringMVC基于Servlet3.0规范的纯注解环境搭建
4.纯注解环境搭建的入门案例执行过程分析
5.SpringMVC常用组件介绍
6.SpringMVC的 @RequestMapping注解详解
7.SpringMVC中的请求参数封装
8.SpringMVC中的表单校验相关注解
9.SpringMVC中和ServletAPI相关的注解使用详解
10.SpringMVC中控制器方法的返回值详解
11.SpringMVC中的异步交互和相关注解介绍
12.Rest风格URL详解
13.@PathVariable注解详解
14.Postman工具
15.跨域访问详解和 @CrossOrigin注解的使用
16.SpringMVC中的请求参数封装源码分析和运用的设计模式介绍
17.SpringMVC中的父子容器
18.SpringMVC中的异常处理
19.SpringMVC中的拦截器使用
20.SpringMVC中的文件上传
21.Spring SpringMVC Mybatis的整合
15.Mybatis-Plus
1.Mybatis-Plus简介
2.Mybatis-Plus快速入门
3.Mybatis-Plus通用CRUD
4.Mybatis-Plus条件构造器
5.Mybatis-Plus的Service封装
6.Mybatis-Plus代码生成器
16. SpringBoot
- SpringBoot介绍
- SpringBoot的核心功能
- SpringBoot的优势
- SpringBoot入门程序
- 起步依赖原理分析
- 自动配置原理解析
- 自定义起步依赖并实现自动配置
- SpringBoot配置文件类型
- 配置文件与配置类的属性映射方式
- SpringBoot整合Mybatis
- SpringBoot整合Junit
- SpringBoot整合Redis
- 自定义Starter
- 事件监听
- 初始化流程
💖💖💖 完结撒花
💖💖💖 路漫漫其修远兮,吾将上下而求索
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
最后,还不收藏进你的收藏夹吃灰😎😎😎
🎉 支持我:点赞👍收藏⭐️留言📝