Java系统学习,最全路线。全面系统学习Java
程序员文章站
2022-04-20 08:48:00
@[TOC]目录第一阶段 JavaSE第二阶段 数据库技术什么是帅哥我是大帅哥帅哥的定义我比你帅孤独寂寞冷人生真是寂寥如雪第一阶段 JavaSEJava编程语言概述Java基础语法Java数组计算机语言介绍流程控制语句的介绍static 修饰符Java语言的前世今生Java 编译器执行流程通类的成员之代码块Java技术体系平台if 分支结构静态代码块与非静态代码块Java核心机制与JVM运行原理switch 选择结构与相关规则单例...
第一阶段 JavaSE
Java编程语言概述 | Java基础语法 | Java数组 |
---|---|---|
计算机语言介绍 | 流程控制语句的介绍 | static 修饰符 |
Java语言的前世今生 | Java 编译器执行流程 | 通类的成员之代码块 |
Java技术体系平台 | if 分支结构 | 静态代码块与非静态代码块 |
Java核心机制与JVM运行原理 | switch 选择结构与相关规则 | 单例 (Singleton) 设计模式 |
搭建 Java开发环境 | 循环结构 | final 修饰符 |
JDK 的安装与配置 | for 循环 | 包 (package) 的管理与作用 |
开发第一个Java 应用程序 | while 循环 | DOS 命令行下编译器操作 |
Java Code Style | switch 选择结构与相关规则 | 使用 jar 命令打包应用程序 |
变量的声明与使用 | do-while 循环语句 | 数组的创建与使用 |
变量内存空间分配与原理 | 各语句性能对比与应用场景 | 数组的默认初始化与内存分析 |
进制与位运算 | 特殊流程控制语句 | 数组的常见算法分析 |
变量的数据类型 | 方法的声明与使用 | 操作数组的工具类 Arrays |
数据类型之间的转换 | 方法调用的过程分析 | 命令行参数 |
变量的运算与底层运算原理 | 跨类调用方法 | 可变参数 |
参数的值传递 | ||
方法的重载 Overload |
面向对象编程 | 高级类特性 | Java API |
---|---|---|
面向对象和面向过程的理解 | 抽象类 (abstract) 实际应用举例 | Wrapper 包装类 |
类和对象的理解 | 接口(interface) 的应用与常见问题 | 装箱与拆箱 |
类和对象的创建、使用 | Java8 / Java9 / Java10对接口的改进 | 包装类的缓存分析 |
属性 | Template Method 设计模式 | 字符串处理类 |
方法 | Factory Method 设计模式 | String 类的使用与内存原理 |
包 | 代理模式(Proxy) | String 类的算法分析 |
this | 类的成员之内部类 | StringBuffer 与 StringBuilder |
构造器 | 匿名内部类 | 字符串处理类性能分析 |
封装 | Java8 中匿名内部类的新特性 | Java.lang.System类 |
JavaBean | Enum枚举 | Java.util.Date类 |
继承 | 枚举的属性与方法 | Java.text.SimpleDateFormat类 |
super关键字 | 接口实现枚举类 | Java.lang.Math类 |
重写 | Annotation 注解 | Java.math.BigInteger类与Java.math.BigDecimal |
多态 | JDK 内置注解 | |
Object类 | 自定义注解 | |
元注解 |
异常处理 | 集合与泛型 | Java IO流 |
---|---|---|
异常的原理 | 集合框架概述 | IO流结构体系 |
异常的堆栈抛出机制 | Collection 系列集合 | IO流原理分析 |
异常的结构体系 | List 系列集合与Set系列集合 | IO流的分类 |
受检与非受检异常 | java.util.ArrayList源码与数据结构分析 | IO流与文件操作 |
异常的处理 | java.util.LinkedList 源码分析 | IO流的包装与链接 |
try-catch 示例 | java.util.HashSet 内部原理 | 缓冲流 |
使用finally回收资源 | java.util.TreeSet 数据结构分析 | 文件的复制与性能对比 |
throw 制造异常 | java7 中Map 系列集合与数据结构分析 | 对象流 |
异常的处理方式之throws | java8 中 Map 系列集合新特性对比 | 对象的序列化与反序列化 |
Java 7增强的throw 语句 | java.util.concurrent.ConcurrentHashMap | 控制台IO |
方法重写与 throws | Iterator 与 ListIterator | 标准输入流与标准输出流 |
自定义异常 | Collections 工具类 | 打印流 |
实战中自定义异常的应用解析 | 集合中使用泛型 | 转换流 |
异常信息的访问 | 自定义泛型 | 字符编码与解码 |
Java 程序的常见问题及解决方法 | 通配符 | RandomAccessFile 类 |
|
Java 多线程 | Java Reflection(Java反射) | 网络编程 |
---|---|---|
线程的原理 | Java 反射机制的研究与应用 | 网络编程基础知识 |
线程的创建与启动 | 反射的原理分析 | 网络编程的主要问题 |
创建线程的几种方式对比 | JVM与类 | 如何实现网络中主机的相互通讯 |
继承 Thread 类与实现 Runnable 接口 | 类的加载、连接、初始化 | 网络通讯要素 |
创建线程方式对比 | 类初始化的时机 | 网络通信协议 |
线程的控制 | 类加载器 ClassLoader简介 | OSI参考模型 |
线程的调度 | 类加载机制 | TCP/IP参考模型(或TCP/IP协议) |
线程的优先级 | 创建并使用自定义的类加载器 | 数据的封装与拆封 |
线程的生命周期 | 开启反射的源头 Class | Java.net.InetAddress 类 |
多线程的安全问题与解决办法 | 获取 Class 实例的四种方式 | TCP 协议与UDP协议 |
线程的同步 | 从 Class 中获取信息 | 基于TCP协议的网络编程 |
互斥锁 | Proxy 和 InvocationHandler 创建动态代理 | Socket 的TCP编程 |
线程的死锁问题 | 动态代理和AOP(Aspect Orient Programming) | 基于UDP协议的网络编程 |
线程通信 | 泛型和Class类 | URL编程 |
生产者与消费者案例 | 使用反射来获取泛型信息 | 针对HTTP协议的URLConnection |
Java8 新特性 | Java9/Java10/Java11新特性 | JavaSE项目 |
---|---|---|
Lambda 表达式 | 模块化系统 | |
类型推断 | jShell命令 | |
Java8核心函数式接口 | 接口的私有方法 | |
Lambda表达式的参数传递 | 语法改进:try和钻石操作符 | |
方法引用与构造器引用 | String存储结构变更 | |
强大的 Stream API | 增强的Stream API | |
Stream 操作的核心步骤 | 全新的HTTP客户端API | |
惰性求值与内部迭代 | 局部变量的类型推断 | |
筛选与切片 | 集合新增创建不可变集合的方法 | |
映射与排序 | 字符串新增一系列处理方法 | |
查找与匹配 | Optional加强 | |
归约与收集 | 更简化的编译运行程序 | |
并行流与串行流 | 废弃Nashorn引擎 | |
Optional 容器类 | ZGC |
第二阶段 数据库技术
MySQL | SQL语言 | JDBC操作 | JDBC操作 |
---|---|---|---|
Mysql的安装和使用 | SQL语句的三种类型 | JDBC概述 | 使用QueryRunner |
图解Mysql程序结构 | DML、DDL、DCL | 获取数据库连接 | 可插拔式结果集处理 |
Mysql服务器的配置 | 数据处理 | 数据库连接池C3P0 、DBCP、Druid | 批量处理 |
Mysql 客户端使用 | 子查询 | 使用JDBC 完成数据库DML操作 | 大数据结果集处理 |
用户权限管理 | 创建和管理表 | 大数据的操作 | 自定义结果集处理 |
Mysql数据库的使用 | 约束与分页 | 批量处理与元数据 | 利用DBUtils编写通用 DAO |
第三阶段 前端技术
XML | HTML | CSS |
---|---|---|
XML用途 | B/S架构 | CSS选择器 |
XML文档结构 | HTML基本使用 | 常用样式 |
XML基本语法 | HTML DOM | 盒子模型与布局 |
DOM&SAX解析体系 | HTML5新特性 | |
DOM4j节点查询 | CSS3新特性 | |
DOM4j文档操作 | ||
xPath语法 | ||
xPath快速查询 |
JavaScript | Jquery | ES6 |
---|---|---|
JavaScript基本语法 | jQuery快速入门 | 前端开发工程师、ES6简介 |
JavaScript流程控制 | jQuery语法详解 | ES6基础语法:let、const |
数组、函数、对象的使用 | jQuery核心函数 | ES6基础语法:解构赋值、模板字符串 |
JavaScript事件绑定/触发 | jQuery对象/JavaScript对象 | ES6基础语法:声明对象、方法简写 |
JavaScript事件冒泡 | jQuery选择器 | ES6基础语法:对象拓展运算符、函数默认参数、不定参数、箭头函数 |
JavaScript嵌入方式 | jQuery 文档处理 | ES6基础语法:Promise |
JavaScript DOM操作 | jQuery事件 | ES6模块化+总结 |
DOM API | jQuery动画效果 |
第四阶段 JavaWEB核心
Tomcat
HTTP协议
HttpWatch
Tomcat服务器搭建
Tomcat目录结构解析
Tomcat端口配置
Tomcat启动&停止
Tomcat&Idea整合
Servlet
Servlet体系
Servlet生命周期
ServletConfig&ServletContext
请求&响应
重定向&转发
中文乱码解决方案
项目路径问题
Request
Response
Jsp
JSP语法
JSP原理
JSP脚本片段&表达式
JSP声明&指令
JSP九大隐含对象
域对象使用
EL表达式
JSTL
Cookie&Session
Cookie机制
Cookie创建&使用
Session原理
Session失效
URL重写
Session活化&钝化
Token令牌应用
Filter&Listener
Filter原理
Filter声明周期
Filter链
Filter登录验证
Filter事务控制
Listener原理
八大监听器使用
Listener监听在线用户
MVC模式&三层架构
MVC 模式概述
MVC 处理流程
三层架构概述
三层架构之控制层
三层架构之业务层
三层架构之数据访问层
第五阶段 单体架构项目:拉勾教育后台管理系统
Ajax&Json
Ajax技术衍生
XMLHttpRequest使用
同步请求&异步请求
JSON语法
Java JSON转换
JavaScript JSON转换
jQuery 基本Ajax方法
底层$.ajax使用
Vue基础
Vue简介
Vue快速入门
MVVM模式
Vue常用指令
Vue生命周期
Vue Ajax
Linux
Linux系统-基础
Linux网络基础
Linux在VMware下的安装
Linux下Java环境的搭建
Linux下Tomcat安装和配置
Linux下 Oracle/MySQL 安装与配置
Shell 编程
拉勾教育后台管理系统
项目介绍:手把手带你实现一个在线教育平台后台管理系统的核心功能
项目目的:通过系统的设计与实现,掌握
第六阶段 企业级开发框架SSM
项目构建工具Maven
Maven环境搭建
Maven构建&自动化构建
本地仓库&*仓库
maven创建web工程
pom.xml、依赖管理
坐标、依赖、生命周期等
Idea下的maven使用
继承&聚合
自动部署&持续集成&持续部署
MyBatis
框架概述
MyBatis概述
自定义简易MyBatis
MyBatis快速入门
MyBatis的CRUD操作
MyBatis两种Dao实现模式
配置文件详解
注解开发
Spring
Spring概述
Spring快速入门
Spring相关API
基于xml的Spring配置
基于注解的Spring配置
Spring面向切面编程(AOP)
Spring JDBCTemplate
声明式事务控制
Spring5新特性概述
SpringMVC
SpringMVC概述
SpringMVC快速入门
请求数据绑定
响应数据
文件上传
异常处理机制
拦截器
SSM整合
项目协作工具Git
Git安装配置
Git本地库搭建
Git常用操作命令
Github注册与配置
Github与Git协同办公
TortoiseGit安装配置
Egit操作push/pull
Git工作流
集中式&GitFlow&Forking
Nginx
Nginx反向代理介绍
Nginx 下载和安装
Nginx 编译和启动、访问
搭建Nginx集群
解决Session共享问题
综合练习:用SSM框架改造拉勾教育后台管理系统
项目介绍:手把手带你使用SSM框架进行在线教育平台后台管理系统的重构
项目目的:通过系统的设计与实
**
第七阶段 分布式技术核心
**
分布式架构理论
分布式系统概论
分布式系统概念
分布式系统理论
Zookeeper
Zookeeper 简介
Zookeeper 环境搭建
Zookeeper 基本使用
Zookeeper 应用场景
Zookeeper 注册中心
Dubbo
分布式服务框架简介
Dubbo+zookeeper介绍
注册中心的安装启动
监控中心的启动
Dubbo在项目中整合
Dubbo的服务提供者配置和启动
Dubbo的服务消费者配置和启动
Dubbo运行测试
负载均衡和bug调试等其他功能
Redis
NoSQL&Redis入门
Redis/memcache/MongoDB对比
Redis安装&启动
分布式数据库CAP原理
Redis五大数据类型和基本操作命令
Redis总体配置Redis.conf
Redis持久化(RDB和AOF)
Redis事务控制
Redis发布和订阅
Redis(Master/Slave)主从复制
Jedis
FastDFS
FastDFS简介
FastDFS安装和配置
FastDFS 配置Tracker服务器
FastDFS 配置Storage服务器
FastDFS 配置启动项
FastDFS 文件上传测试
FastDFS nginx的http访问代理配置
FastDFS java客户端测试
配置http访问
RabbitMQ
RabbitMQ简介
RabbitMQ安装启动
RabbitMQ快速入门
RabbitMQ模式
RabbitMQ整合
消息成功确认机制
消费端限流
消息失效过期时间
死信队列
延迟队列
RabbitMQ集群
第八阶段 分布式项目实战
第九阶段 微服务技术核心
SpringBoot
SpringBoot原理
SpringBoot快速入门
yml配置文件以及多环境配置文件的使用
SpringBoot整合MyBatis
SpringBoot整合Redis进行数据缓存
SpringBoot中的RestTemplate发送Http请求
SpringBoot中的定时器
SpringBoot项目部署
SpringBoot的自动配置实现原理
Spring Boot Admin服务
SpringCloud
微服务的概念
SpringCloud简介
SpringCloud常用组件和应用场景介绍
Eureka组件
Ribbon组件
Hystrix组件
Feign组件
Gateway组件
Config组件
SpringCloudAlibaba的组件
ElasticSearch
ES简介
ES安装启动
ES快速入门
ES集成IK分词器
ES的相关概念
kibana操作索引库
ES集群环境搭建
Rest客户端操作索引库
Kafka
Kafka 简介
Kafka 快速入门
Kafka 架构解读
Kafka 配置详解
Kafka 分区
Kafka 生产者/消费者实例
MyCat
MyCat 简介
MyCat的下载和安装
MyCat分片配置
MyCat分片使用和测试
MyCat读写分离
MyCat配置分库分表
ShardingJDBC
ShardingJDBC 简介
分片策略与分片算法
ShardingJDBC配置
Docker
Docker简介
Docker常用命令
Docker项目部署
Docker原理解析
Docker容器转为镜像
Docker自定义centos
第十阶段 微服务项目实战
第十一阶段 数据结构算法与调优
数据结构与算法
字符串、数组、链表
栈、队列
树、图、堆
排序
递归
回溯
查找
MySQL高级
MySQL架构组成
MySQL备份和恢复
MySQL查询和慢查询日志分析
MySQL索引优化
MySQL存储引擎优化
MySQL锁机制优化
MySQL高可用设计
MySQL集群
JVM优化
JVM简析
JVM组成结构
JVM堆、栈原理
JVM-Heap三区原理
JVM垃圾收集机制
堆内存调优
GC回收策略
GC三大算法
Java并发高级
volatile 关键字
内存可见性分析
原子变量与CAS (Compare And Swap) 算法分析
CountDownLatch 闭锁
实现 Callable 接口
Lock 同步锁
Condition 控制线程通信
线程按序交替
ReadWriteLock 读写锁
线程池
线程调度
.ForkJoinPool 分支/合并框架
工作窃取窃取模式
阻塞队列
第十二阶段 Offer加速器
技术面试题详解
数据结构与算法篇
计算机网络篇
Linux系统篇
JavaSE篇
JavaWeb篇
SSM框架篇
JVM篇
并发编程篇
数据库篇
RPC框架篇
分布式存储篇
消息中间件篇
微服务篇
迎接面试:专项能力突击
一面:编程基础能力考察
二面:项目经验考察
三面:方案设计综合能力考察
四面:HR综合软素质考察
如何打造一份让人无法拒绝的简历
高分简历模板分析
打造一份高分简历的方法
模拟训练:重写简历1v1指导服务
如何在面试中发挥应有的实力
学会表达:如何把硬实力表达出来
扬长避短:如何表现出自己的闪光点
洞悉套路:面试考察点与答题套路指导
模拟训练:大厂面试官1v1模拟面试
模拟面试复盘
本文地址:https://blog.csdn.net/Pausch/article/details/108766323