一起学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基础语法

  1. Java语言的发展史

  2. JDK的下载和安装

  3. DOS命令的介绍和使用

  4. Path环境变量的配置

  5. 第一个代码HelloWorld案例

  6. NotePad++软件的安装和使用

  7. Java中的数据类型

  8. 常量的使用

  9. 变量的定义与使用

  10. Java中代码的书写规范

  11. 数据类型之间的转换

  12. Java中的各种运算符操作
    13.if分支语句的灵活使用

  13. switch分支语句

  14. for循环结构

  15. while循环结构

  16. do…while循环结构
    18.各种循环语句的区别和应用场景
    19.循环跳转控制语句

  17. 嵌套循环的应用

  18. 使用循环嵌套打印直角三角形

  19. IDEA开发软件

  20. 数组的动态初始化

  21. 数组的访问格式|

  22. 数组的静态初始化

  23. Java的内存划分和作用

  24. 分析数组在内存中的存储

  25. 方法的定义和调用

  26. 方法的参数和返回值问题

  27. 方法的重载(Overload)

  28. 参数是基本类型和引用类型的区别

  29. Debug断点调试的使用

3.1 基础一

  1. 类和对象的概述

  2. 分析对象在内存中的存储

  3. 成员变量和局部变量的区别

  4. private关键字的应用

  5. this关键字的应用

  6. this关键字的内存原理

  7. 面向对象特性之封装

  8. 构造方法(Constructor)

  9. 构造方法的注意事项

  10. 标准类的定义规范
    03、API基础

  11. API的使用方式

  12. String类的特点

  13. String类的常用构造方法

  14. 字符串的比较规则

  15. 用户登录的案例

  16. 遍历字符串的方式

  17. 字符串的拼接

  18. 字符串的反转操作

  19. StringBuilder类的作用

  20. StringBuilder类的构造方法

  21. StringBuilder类的常用方法

  22. 用StringBuilder完成字符串拼接和反转
    04、集合基础

  23. ArrayList集合的特点

  24. ArrayList的构造方法

  25. ArrayList的常用操作

  26. 集合存储自定义类型并遍历

3.2 基础二

  1. 面向对象特性之继承

  2. 继承的好处和弊端

  3. super关键字的作用

  4. 继承时子父类的访问特点

  5. 方法的重写(Override)

  6. package关键字的作用

  7. import关键字的作用

  8. final关键字的作用

  9. static关键字的作用

  10. static关键字内存分析

  11. 面向对象特性之多态

  12. 多态的好处和弊端

  13. 多态中成员访问的特点

  14. 多态中的数据类型转型

  15. instanceof关键字的使用

  16. 抽象类的特点

  17. 抽象类的成员特点

  18. 模板设计模式

  19. 接口的概述

  20. 接口的特点和注意事项

  21. 类、抽象类、接口之间的关系

  22. 内部类的概述

  23. 成员内部类的使用

  24. 局部内部类的使用

  25. 匿名内部类的使用

  26. 匿名内部类在开发中的应用

  27. Math类及其常用方法

  28. System类及其常用方法

  29. Object类的toString()和equals()方法

  30. Objects类以及常用方法

  31. BigDecimal类及其常用方法

  32. 二分查找原理以及代码实现

  33. 冒泡排序的原理分析及代码实现

  34. 递归的应用和注意事项

  35. 快速排序原理以及代码实现

  36. jar包的制作以及使用

  37. Arrays类及其常用方法

  38. 基本类型的包装类

  39. 自动拆箱和自动装箱

  40. Optional类以及使用

  41. ProcessBuilder类以及使用

  42. 日期Date类型及其常用方法

  43. 日期格式化类SimpleDateFormat

  44. 日历Calendar类的使用

  45. Jdk8新增的日期Date API(LocalDateTime,LocalDate,LocalTime,
    Instant,Period,Duration)

  46. NumberFormat类以及使用

  47. 异常的概述

  48. JVM默认处理异常的方式

  49. 异常处理方式之try…catch

  50. 异常处理方式之throws

  51. Throwable的常用方法

  52. 异常的分类和区别

  53. 异常的注意事项

  54. 自定义异常的使用

4. 集合

  1. 集合体系结构
  2. 单列集合体系的详细讲解
  3. 迭代器的使用
  4. 增强for循环的使用
  5. forEach方法遍历
  6. 并发修改异常的产生原因和解决办法
  7. 数据结构之栈和队列
  8. 数据结构之数组和链表
  9. ArrayList集合源码分析
  10. LinkedList集合源码分析
  11. 双列集合体系的详细讲解
  12. Map集合的遍历方式
  13. TreeSet的自然排序和比较器排序
  14. 数据结构之树
  15. 数据结构之二叉树
  16. 数据结构之二叉平衡树
  17. 数据结构之红黑树
  18. TreeSet(TreeMap)底层源码分析
  19. 数据结构之哈希表
  20. Jdk1.7中HashSet(HashMap)源码分析
  21. Jdk1.8中HashSet(HashMap)源码分析
  22. 泛型的使用
  23. 泛型通配符的使用
  24. 可变参数的使用和注意事项

5. IO流

  1. File类对文件的操作
  2. IO流的概述和分类
  3. 字节流写数据的方式
  4. FileOutputStream和BufferedOutputStream源码分析
  5. 字节流读数据的方式
  6. FileInputStream和BufferedInputStream源码分析
  7. 字节流完成视频文件的复制
  8. 编码表
  9. 字符流写数据的方法
  10. 字符串读数据的方法
  11. 字符缓冲流的使用
  12. 字符缓冲流的特有方法
  13. 标准输入输出流
  14. 打印流的使用
  15. 对象序列化流
  16. serialVersionUID&transient

6. 进程和线程的区别

  1. Java实现多线程的三种方式
  2. 线程API之线程名称
  3. 线程API之线程休眠
  4. 线程API之线程礼让
  5. 线程API之线程优先级
  6. 线程API之线程中断
  7. 线程API之后天线程
  8. 线程的安全问题
  9. 同步代码块
  10. 同步方法
  11. Lock锁
  12. 死锁概述以及现象演示
  13. 死锁诊断(jstack工具的使用)
  14. 线程通讯之生产者消费者问题
  15. 线程通讯代码实现之同步代码块
  16. 线程通讯代码实现之Condition实现通信
  17. 线程通讯代码实现之阻塞队列(BlockingQueue)实现
  18. 线程的状态
  19. 线程池概述
  20. 自定义线程池
  21. Executors创建线程池
  22. ThreadPoolExecutor创建线程池
  23. ThreadPoolExecutor原理介绍以及任务拒绝策略介绍
  24. volatile关键字
  25. JMM内存模型
  26. 原子性概述
  27. 原子类AtomicInteger类的使用
  28. CAS算法
  29. 并发容器ConcurrentHashMap原理讲解
  30. 并发工具类(CountDownLatch,Semaphore,CyclicBarrier,Exchanger)的使用
  31. Properties的用法
  32. 内存操作流的使用
  33. RandomAccessFile使用
  34. SequenceInputStream的使用
  35. 压缩流/解压缩流

7. 网络编程

  1. 网络编程的概述
  2. 网络编程的三要素之ip地址(ipv4,ipv6)
  3. InetAddress类的操作
  4. 网络编程的三要素之端口和协议的详细解释
  5. 网络参考模型
  6. UDP协议发送与接收数据
  7. 聊天小程序案例
  8. UDP协议中广播与组播
  9. TCP协议发送与接收数据
  10. 多线程下文件的上传
  11. NIO概述
  12. NIO之Buffer的使用
  13. NIO之Channel的使用
  14. NIO之Selector的使用
  15. 自定义非阻塞式的HTTP静态服务器

8. Lambda

  1. Lambda表达式的标准写法
  2. Lambda的省略规则
  3. Lambda和匿名内部类的区别
  4. JDK8和9对接口组成的更新
  5. 方法引用的介绍
  6. Stream流的中间操作
  7. Stream流的终结操作
  8. Stream流的收集操作

9. 反射

  1. 虚拟机类加载机制(概述,类加载过程,类的初始化时机)

  2. 类加载器(概述,分类,双亲委派机制,ClassLoader类,自定义类加载)反射机制的概述

  3. 获取Class类的对象

  4. 反射获取构造方法并使用

  5. 反射获取成员方法并使用

  6. 反射获取成员变量并使用

  7. 自定义非阻塞式的HTTP动态服务器

10. maven

  1. pom文件依赖传递介绍
  2. 依赖冲突的解决
  3. Maven项目继承的关系
  4. Maven项目聚合的关系
  5. 分模块搭建聚合项目
  6. 私服仓库介绍和搭建
  7. 本地资源上传到私服
  8. 从私服下载资源到本地
  9. 安装第三方资源到本地仓库
  10. 安装第三方资源到私服仓库
  11. Maven多环境开发
  12. 单元测试
  13. 自定义插件

11. git

  1. Git概述和特点
  2. Git的下载安装
  3. Git基本概念
  4. Git操作入门
  5. Git历史版本控制
  6. Git分支版本控制
  7. Git远程仓库的操作
  8. Git远程托管平台应用(GitHub,码云)
  9. Git解决冲突
  10. IDEA中集成Git应用
  11. Git常用操作命令

12.mysql

  1. 数据库的概念
  2. 常见的数据库软件
  3. MySQL数据库的安装卸载
  4. MySQL数据库的登录退出
  5. MySQL的目录结构
  6. SQL语句的分类

13.Spring框架

  1. Spring概述
  2. 耦合与解耦
  3. 工厂设计模式
  4. IoC概述及作用
  5. Spring基于XML的IoC配置入门
  6. Spring基于XML的IoC配置详解
  7. 依赖注入的概念
  8. Spring中的依赖注入
  9. Spring中多配置文件配置及问题分析
  10. Spring基于XML和Mybatis的整合
  11. Spring基于注解的IoC配置
  12. 常用注解的使用
  13. Spring整合Junit
  14. Spring高级分析之-IoC容器说明
  15. Spring高级分析之-组件扫描器TypeFilter
  16. Spring高级分析之-Import注解和自定义导入器
  17. Spring高级分析之-BeanFactoryPostProcessor
  18. Spring高级分析之-BeanPostProcessor
  19. Spring高级分析之-InitializingBean
  20. Spring高级分析之-FactoryBean
  21. AOP编程思想,作用,优势及实现原理分析
  22. 代理模式和动态代理实现AOP思想的案例
  23. Spring中的AOP简介和常用术语
  24. Spring基于XML的AOP配置
  25. 5种通知类型分析
  26. 切入点表达式详解
  27. Spring基于注解的AOP配置
  28. Spring中AOP的高级分析之-EnableAspectjAutoProxy注解的解析分析
  29. Spring中AOP的运行期增强的执行过程分析
  30. Spring中事务的API详解
  31. Spring基于XML的事务配置
  32. Spring基于注解的事务配置
  33. Spring事务高级分析之-TransactionTemplate源码分析
  34. Spring事务高级分析之-DataSourceUtils源码分析
  35. Spring事务高级分析之-TransactionSynchronizationManager源码分析
  36. Spring事务高级分析之-TransactionEventListener注解的加载过程分析
  37. Spring中的模板对象介绍
  38. JdbcTemplate和NamedParameterJdbcTemplate的使用
  39. RedisTemplate的使用
  40. 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

  1. SpringBoot介绍
  2. SpringBoot的核心功能
  3. SpringBoot的优势
  4. SpringBoot入门程序
  5. 起步依赖原理分析
  6. 自动配置原理解析
  7. 自定义起步依赖并实现自动配置
  8. SpringBoot配置文件类型
  9. 配置文件与配置类的属性映射方式
  10. SpringBoot整合Mybatis
  11. SpringBoot整合Junit
  12. SpringBoot整合Redis
  13. 自定义Starter
  14. 事件监听
  15. 初始化流程

完结撒花

路漫漫其修远兮,吾将上下而求索

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

最后,还不收藏进你的收藏夹吃灰

支持我:点赞收藏⭐️留言

你可能感兴趣的:(java随笔)