Java学习路线

目录

友情提醒

先看文章目录,大致了解知识点结构,直接点击文章目录可以跳转到文章指定位置。

总结了一下学习路线,我有三套学习视频几百G。有缘看到这篇的可以关注私信我拿资料,哈哈哈。

第一章、Java基础

1.1)第一部分:Java 入门

①DOS常用命令

Java开发环境的搭建:安装JDK,配置环境变量

Java的注释,标识符、标识符的命名规范

②Java基本数据类型

变量和常量的定义及初始化

③Java的运算符

④流程控制语句

⑤关键字

⑥方法的定义,方法的递归调用

1.2)第二部分:Java数组

①Java 数组的定义,声明

②数组的特点优势与局限

③数组的遍历访问(普通循环,增强for循环)

④数组元素的顺序查找

⑤数组越界

⑥数组元素的排序(冒泡选择)

⑦java.util.Arrays工具类的使用

⑧二维数组

⑨数组转成 Stream

⑩数组转成 List

1.3)第三部分:Java面向对象

面向对象设计思想

类中的五成员

重写和重载

抽象方法与抽象类

接口

构造方法的细节

封装继承多态

局部变量、成员变量、静态变量、

final 关键字this 关键字super 关键字

静态属性、静态方法、静态代码块

1.4)第四部分:常用工具类

包装类

日期时间相关的工具类

字符串String

正则表达式

Apache-commons 工具库

Guava 工具库

1.5)第五部分:集合体系

集合的概念和作用

集合框架体系介绍

集合框架之Collection接口

ArrayList和LinkedList的方法使用

ArrayList和LinkedList各自的工作原理分析原理分析

使用多种方式遍历集合

HashSet和LinkedHashSet各自的工作原理分析

集合框架之Map接口

泛型的使用12. Collections工具类的使用

CopyOnWriteArrayList

HashMap

LinkedHashMap

TreeMap

ConcurrentHashMap

fail-fast

1.6)第六部分:序列化和泛型

1.7)第七部分:异常

为什么需要异常处理机制?

Error 和 Exception

try-catch-finally

try-with-resource

throw和throws

自定义异常

尽量捕获原始异常

不要打印堆栈后再抛出异常

不要用异常处理机制代替判断

不要过早捕获异常

  1. 断点调试之引导运行步骤

1.8)第八部分:file类和IO流

File类的作用

  1. File类中常用方法的使用介绍

  2. 使用File类操作文件和文件夹

  3. 相对路径和绝对路径的介绍

IO流IO流的概念和工作原理

IO流的分类

文件流的使用

转换流的使用

缓冲流的使用

对象流的使用

内存流的使用

使用不同的流实现文件内容的拷贝

字符流、字节流

输入流、输出流

同步、异步

阻塞、非阻塞

BIO、NIO 和 AIO

NIO 2.0

1.9)第九部分:多线程

  1. 进程和线程的介绍
  2. 进程和线程之间的区别与联系
  3. 线程实现方式之继承自Thread类
  4. 线程实现方式之实现Runnable接口
  5. 线程实现方式之线程池
  6. 线程的生命周期
  7. 线程中常用方法的使用
    创建线程
    创建线程池
    什么是线程安全
    多级缓存和一致性问题
    CPU 时间片和原子性问题
    指令重排和有序性问题
    线程安全和内存模型
    happens-before
    可重入锁阻塞锁乐观锁悲观锁分布式锁
    CAS
    JUC
    ABA
    AQS
    Fork Join
    偏向锁轻量级锁重量级锁自旋锁
    什么是死锁
    避免死锁synchronized
    volatile关键字
    Thread
    Local
    Executors
    CountDownLatch
    Callable
    ReentrantLock
    ReentrantReadWriteLock
    Atomic 相关类

1.10)第十部分:stream流

1.11)第十一部分:Lambda

1.12)第十二部分:枚举注解反射

注解是什么?

注解的生命周期

注解装饰的目标

自定义注解

使用注解

什么是反射?

反射有什么用?

Class 类

1.13)第十三部分:单元测试

Junit

TestNG

1.14)第十四部分:源码阅读

String

Integer

ArrayList

LinkedList

CopyOnWriteArrayList

HashMap

TreeMap

LinkedHashMap

ConcurrentHashMap

CopyOnWriteArrayList

第二章、JavaWeb

2.1)第一部分:HTML5

  1. html概述

  2. html基本标签

  3. 图片标签

  4. 超链接标签

  5. 表格标签

  6. 无序列表标签

  7. 有序列表标签

  8. 定义列表标签

  9. div标签

  10. 语义化标签

  11. 表单标签

2.2)第二部分: CSS

CSS3简介和用途

CSS3书写规范

CSS3基本语法

CSS3三种使用方式

标签选择器

Id选择器

Class选择器

属性选择器9

层次选择器

文字、文本属性

背景、列表属性

尺寸、显示、轮廓属性

浮动、定位属性

盒子模型

CSS3高级属性

2.3)第三部分:JavaScript

JavaScript概述

JavaScript发展史

JavaScript组成

数据类型

运算符

分支语句

循环语句

系统函数、自定义函数、匿名函数

常见事件

数组、字符串、日期对象

BOM对象:window、history、location

DOM概念DOM操作:创建、修改内容、删除

Css样式操作

2.4)第四部分:MySQL

安装与使用

MySQL客户端和服务器配置

用户权限管理

DDL创建数据库和表

约束与外键

DML实现添加、修改、删除数据8. 聚合函数、日期函数等

DQL简单查询

排序、分组、筛选

多表查询

子查询

和exists关键字

分页查询

Mysql SQL语句优化介绍

2.5)第五部分:JDBC连接池

JDBC使用步骤

Connection、Statement、ResultSet接口

使用JDBC 完成数据库DML操作

PreparedStatement对象

大数据的操作

批量处理与元数据

事务处理

隔离级别

自定义连接池

DBCP、C3p0连接池

DBUtis工具类

QueryRunner

自定义结果集处理

连接池知识总结

2.6)第六部分:Servlet

什么是Servlet

Servlet接收客户端请求信息

Servlet响应客户端信息

Servlet的生命周期

重定向写法

转发写法

转发和重定向区别

HttpServletRequest获取中文乱码问题

HttpServletResponse响应中文乱码问题

Servlet路径映射问题

Servlet多路径映射

2.7)第七部分:JSP

  1. 什么是JSP
  2. JSP的内置对象
  3. 透析JSP的本质
  4. JSTL+EL5. MVC介绍
  5. 分层的重要性
  6. Web工程中事务实现
  7. Session的使用9. Cookie的使用
  8. web工程中连接池的使用
  9. 实现用户的自动登录
  10. 文件的上传、下载
  11. 过滤器、 监听器

2.8)第八部分:AJAX/JSON

Ajax技术的理解

XMLHttpRequest使用步骤

XMLHttpRequest GET/POST的区别

同步请求&异步请求

同步请求&异步请求的区别

Ajax获取不同的返回值类型

Ajax使用原生JavaScript和Jquery的区别

Ajax响应状态处理

JSON语法

Java JSON 解析

Java JSON 生成

Java JSON 第三方工具快速解析

JavaScript JSON转换

Jquery JSON转换

2.9)其他

XML

Filter

Listener

JSTL

Cookie

Session

第三章、框架

3.1)Maven工具

  • 描述:项目管理工具
  • 构建
  • 依赖管理
  • 插件
  • 配置
  • 子父工程
  • 多模块打包构建
  • Nexus 私服搭建

3.2)MyBatis

  • 描述:数据访问框架,操作数据库进行增删改查等操作
  • 增删改查
  • 全局配置
  • 动态 SQL
  • 缓存
  • 和其他框架的整合
  • 逆向工程

MyBatis Plus

  • 描述:Mybatis 的增强工具,能够简化开发、提高效率
  • 引入
  • 通用 CRUD
  • 条件构造器
  • 代码生成器
  • 插件扩展
  • 自定义全局操作

3.3)第三部分:Spring5

  • 描述:Java 轻量级应用框架
  • IOC
  • AOP
  • 事务

3.4)第四部分:Spring MVC

  • 描述:Java 轻量级 web 开发框架
  • 什么是 MVC?
  • 请求与响应
  • Restful API
  • 拦截器
  • 配置
  • 执行过程

3.5)第五部分:SpringBoot2

  • 描述:简化 Spring 应用的初始搭建以及开发过程,提高效率
  • 常用注解
  • 资源整合
  • 高级特性
  • 本地热部署

3.6)第六部分:Spring Security

  • 描述:Spring 的安全管理框架
  • 用户认证
  • 权限管理
  • 相关技术:Shiro

3.7)第七部分:SVN、Git工具

  • 区分 Git 和 GitHub
  • 工作区
  • 分支
  • 代码提交、推送、拉取、回退、重置
  • 分支操作
  • 代码合并、解决冲突
  • 标签
  • cherry-pick
  • Git Flow
  • 相关技术:SVN(比较老)

3.8)第八部分:其他框架

Vue

Spring Cloud

Netty

Dubbo

第四章、性能优化

使用单例、使用线程池、减少上下文切换、减小锁粒度、数据压缩、Stream 并行流、GC 调优、JVM 内存分配调优、btrace

第五章、数据库

MySql

SQL语句

事务

锁机制

索引、约束、存储过程、分库分表、binlog、读写分离、

数据库缓存(Redis、MongoDB)

数据库中间件(MyCat)

数据库连接池(Durid)

性能优化

第六章、JVM

Java 内存结构堆栈、垃圾回收、JVM 参数调优、Java 对象模型、HotSpot、类加载机制、编译和反编译、反编译工具、JIT、

虚拟机性能监控和故障处理工具(jps、jstack、jmap、jstat、jconsole、javap)

第七章、软件工程

  • 软件的本质
  • 软件特性
  • 软件过程
  • 软件开发原则
    • 开闭原则
    • 里氏替换原则
    • 依赖倒置原则
    • 单一职责原则
    • 接口隔离原则
    • 迪米特法则
  • 软件过程模型
  • 敏捷开发
  • 软件开发模型
  • 需求建模
  • 软件设计
  • UML
  • 体系结构设计
  • 设计模式
  • 软件质量管理
  • 评审
  • 软件质量保证
  • 软件测试
    • 单元测试
    • 集成测试
    • 系统测试
    • 压力测试
    • 部署测试
  • 软件配置管理
  • 软件项目管理
  • 软件项目估算
  • 项目进度安排
  • 风险管理
  • 软件过程改进
    • 成熟度模型

第八章、设计模式

设计模式的六大原则、

创建型设计模式(单例、抽象工厂、建造者、工厂、原型)、

结构型设计模式(适配器、桥接、装饰、组合、外观、享元、代理)、

行为型设计模式(模板方法、命令、迭代器、观察者、中介者、备忘录、解释器、状态、策略、责任链、访问者)、

单例的七种写法

第九章、数据结构和算法

简单的数据结构(栈、队列、链表、数组、集合、哈希表)、

树(二叉树、字典树、平衡树、排序树、B 树、B+ 树、R 树、红黑树、多路树)、

堆、

图(拓扑、有向图、无向图)

双指针、查找、分治、动态规划、递归、回溯、贪心、位运算、DFS、BFS

稳定的排序算法(冒泡排序、插入排序、鸡尾酒排序、桶排序、计数排序、归并排序、原地归并排序、二叉排序树排序、鸽巢排序、基数排序、侏儒排序、图书馆排序、块排序)、

不稳定的排序算法(选择排序、希尔排序、梳排序、堆排序、平滑排序、快速排序、内省排序、耐心排序、Clover 排序)

时间复杂度、空间复杂度、贪心算法、KMP 算法

第十章、操作系统

  • 操作系统的组成
  • Linux 常用命令
  • Linux 系统安装
  • 环境变量
  • 文件管理
  • 用户管理
  • 内存管理
  • 磁盘管理
  • 进程管理
  • 网络管理
  • 软件包管理
  • 服务管理
  • 日志管理
  • Linux 内核
  • 常用命令
  • 常用环境搭建
  • Shell 脚本编程
  • VIM 的使用

服务器性能指标(qps、CPU 利用率)

进程、线程(进程 / 线程间通讯方式、进程调度算法、进程同步、)

局部性原理

内存管理、分段和分页、虚拟内存和主存

第十一章、缓存

  • 什么是缓存?
  • 本地缓存
    • Caffeine 库
  • 多级缓存
  • Redis 分布式缓存
    • 数据类型
    • 常用操作
    • Java 操作 Redis
      • Spring Boot Redis Template
      • Redisson
    • 主从模型搭建
    • 哨兵集群搭建
    • 日志持久化
  • 缓存(Redis)应用场景
    • 数据共享
    • 单点登录
    • 计数器
    • 限流
    • 点赞
    • 实时排行榜
    • 分布式锁
  • 缓存常见问题
    • 缓存雪崩
    • 缓存击穿
    • 缓存穿透
    • 缓存更新一致性
  • 相关技术:Memcached、Ehcache

第十二章、消息队列

Rabbit

  • 消息队列的作用
  • RabbitMQ 消息队列
    • 生产消费模型
    • 交换机模型
    • 死信队列
    • 延迟队列
    • 消息持久化
    • Java 操作
    • 集群搭建
  • 相关技术:Kafka、ActiveMQ、TubeMQ、RocketMQ

MQKafka

第十三章、服务器

Tomcat

jetty

Nginx

  • Nginx 作用
  • 正向代理
  • 反向代理(负载均衡)
  • 常用命令
  • 配置
  • 动静分离(网站部署)
  • 集群搭建
  • 相关技术:HAProxy、Apache

第十四章、计算机网络

网络安全

CSRF、XSS、SQL 注入

加密和解密(对称加密、非对称加密)

MD5、SHA1、DES、RSAD

DOS 攻击

网络分层模型

网络传输过程

IP、端口

HTTP 和 HTTPS协议

TCP 和 UDP协议

ARP 地址解析协议

SSL、TLS、Cookie、Session、CDN、

DNS域名解析

第十五章、Netty 网络编程

  • IO 模型(BIO / NIO)
  • Channel
  • Buffer
  • Seletor
  • Netty 模型
  • WebSocket 编程(动手做个聊天室)

第十六章、微服务

Dubbo

  • 架构演进
  • RPC
  • Zookeeper
  • 服务提供者
  • 服务消费者
  • 项目搭建
  • 相关技术:DubboX(对 Dubbo 的扩展)
    微服务
  • 微服务概念
  • Spring Cloud 框架
    • 子父工程
    • 服务注册与发现
    • 注册中心 Eureka、Zookeeper、Consul
    • Ribbon 负载均衡
    • Feign 服务调用
    • Hystrix 服务限流、降级、熔断
    • Resilience4j 服务容错
    • Gateway(Zuul)微服务网关
    • Config 分布式配置中心
    • 分布式服务总线
    • Sleuth + Zipkin 分布式链路追踪
  • Spring Cloud Alibaba
    • Nacos 注册、配置中心
    • OpenFeign 服务调用
    • Sentinel 流控
    • Seata 分布式事务
      接口管理
  • Swagger 接口文档
  • Postman 接口测试
  • 相关技术:YApi、ShowDoc

第十七章、容器

Docker

  • 容器概念
  • 镜像
  • 部署服务
  • Dockerfile
  • Docker Compose
  • Docker Machine
  • Docker Swarm
  • 多阶段构建

K8s

  • K8S 架构
  • 工作负载
    • 资源类型
    • Pod
    • Pod 生命周期
    • Pod 安全策略
  • K8S 组件
  • K8S 对象
  • 部署应用
  • 服务
    • Ingress
  • Kubectl 命令行
  • 集群管理

第十八章、架构设计

🌖 分布式

  • 分布式理论
    • CAP
    • BASE
  • 分布式缓存
    • Redis
    • Memcached
    • Etcd
  • 一致性算法
    • Raft
    • Paxos
    • 一致性哈希
  • 分布式事务
  • 分布式 id 生成
  • 分布式任务调度
  • 分布式服务调用
    • trpc
  • 分布式存储
    • HDFS
    • Ceph
  • 分布式数据库
    • TiDB
    • OceanBase
  • 分布式文件系统
    • HDFS
  • 分布式协调
    • Zookeeper
  • 分布式监控
    • Prometheus
    • Zabbix
  • 分布式消息队列
    • RabbitMQ
    • Kafka
    • Apache Pulsar
  • 分布式日志收集
    • Elastic Stack
    • Loki
  • 分布式搜索引擎
    • Elasticsearch
  • 分布式链路追踪
    • Apache SkyWalking
  • 分布式配置中心
    • Apollo
    • Nacos

🌗 高可用

  • 限流
  • 降级熔断
  • 冷备
  • 双机热备
  • 同城双活
  • 异地双活
  • 异地多活
  • 容灾备份

🌗 高并发

  • 数据库
    • 分库分表
      • MyCat 中间件
      • Apache ShardingSphere 中间件
    • 读写分离
  • 缓存
    • 缓存雪崩
    • 缓存击穿
    • 缓存穿透
  • 负载均衡
    • 负载均衡算法
    • 软硬件负载均衡(2、3、4、7 层)

🌘 服务网格

服务网格用来描述组成应用程序的微服务网络以及它们之间的交互。服务网格的规模和复杂性不断的增长,它将会变得越来越难以理解和管理,常见的需求包括服务发现、负载均衡、故障恢复、度量和监控等。

知识

  • Istio
    • 流量管理
    • 安全性
    • 可观测性
  • Envoy(开源的边缘和服务代理)

资源

🌘 DDD 领域驱动设计

将数据、业务流程抽象成容易理解的领域模型,通过用代码实现领域模型,来组成完整的业务系统。

知识

  • DDD 的优势
  • DDD 的适用场景
  • DDD 核心概念
    • 领域模型分类:失血、贫血、充血、涨血
    • 子域划分:核心域、通用域、支撑域
    • 限界上下文
    • 实体和值对象
    • 聚合设计
    • 领域事件
  • DDD 实践

资源

🌘 其他

  • Sidecar
  • Serverless
  • 云原生

第十九章、大数据

搜索(Elasticsearch 、Solr)

  • 5V 特点
  • Hadoop
  • HDFS
  • MapReduce
  • Spark
  • Flink
  • Storm
  • Hive
  • HBase
  • Druid
  • Kylin
  • Pig
  • Mahout

第二十章、项目实战

电商秒杀

第二十一章、面试题

面试题
收集的几千道面试题

面经

第二十二章、能力

程序员重要能力

  1. 团队协作能力
  2. 高效沟通能力
  3. 需求分析能力
  4. 架构设计能力
  5. 抽象复用能力
  6. 独立创造能力
  7. 问题解决能力
  8. 归纳总结能力
  9. 自主学习能力
  10. 工具利用能力
  11. 高效编码能力
  12. 信息检索能力
  13. 开源建设能力
  14. 源码阅读能力
  15. 自测审查能力
  16. 文档编写能力
  17. 知识表达能力
  18. 绘图描述能力
  19. 兴趣驱动(长期学习能力)
  20. 保持好奇心
相关推荐
我要吐泡泡了哦10 分钟前
GAMES104:15 游戏引擎的玩法系统基础-学习笔记
笔记·学习·游戏引擎
骑鱼过海的猫12310 分钟前
【tomcat】tomcat学习笔记
笔记·学习·tomcat
qmx_0711 分钟前
HTB-Jerry(tomcat war文件、msfvenom)
java·web安全·网络安全·tomcat
为风而战19 分钟前
IIS+Ngnix+Tomcat 部署网站 用IIS实现反向代理
java·tomcat
贾saisai2 小时前
Xilinx系FPGA学习笔记(九)DDR3学习
笔记·学习·fpga开发
技术无疆2 小时前
快速开发与维护:探索 AndroidAnnotations
android·java·android studio·android-studio·androidx·代码注入
北岛寒沫2 小时前
JavaScript(JS)学习笔记 1(简单介绍 注释和输入输出语句 变量 数据类型 运算符 流程控制 数组)
javascript·笔记·学习
铁匠匠匠4 小时前
从零开始学数据结构系列之第六章《排序简介》
c语言·数据结构·经验分享·笔记·学习·开源·课程设计
架构文摘JGWZ5 小时前
Java 23 的12 个新特性!!
java·开发语言·学习
小齿轮lsl5 小时前
PFC理论基础与Matlab仿真模型学习笔记(1)--PFC电路概述
笔记·学习·matlab