Java知识点汇总

前言

写这篇文章目的,就是列出了一个Java的路线图,带刚开始学习Java或需要复习Java的朋友进行系统的学习。

整个体系分为5个阶段:Java基础、Java进阶、JavaWeb、Java框架、分布式,通过这5个阶段的学习,大家能掌握到目前互联网企业所需要的主流技术点。

每个课程后面都有我的博文地址,内容会持续更新,争取完成一个完整的体系。

学习方法方面给初学朋友的建议就是:

1、坚持,Java的知识点多,而且是一个体系,必须一步一步坚持下去

2、思考,每个知识点除了知道怎么用,还需要思考不用行不行、有没有其他办法、实现的原理等

3、练习,学习编程就是多敲代码,每篇博文都有案例、练习和作业,多动手学习起来才有效果

第一阶段 Java基础

序号课程名称内容简介博客地址
1Java的安装和配置Java语言介绍Java基础01 Java的安装和配置_恒哥~Bingo的博客-CSDN博客
JDK安装
环境变量配置
HelloWorld
Java编译执行过程
Eclipse的使用
2变量、标识符和类型转换Java标识符的规则和规范Java基础02 变量、标识符和类型转换_恒哥~Bingo的博客-CSDN博客
Java的关键字
变量的定义和使用
变量的数据类型
自动类型转换
强制类型转换
Scanner输入
3Java的运算符赋值运算符Java基础03 Java的运算符_恒哥~Bingo的博客-CSDN博客
算术运算符
关系运算符
逻辑运算符
三元运算符
4分支语句基本的 ifJava基础04 分支语句_恒哥~Bingo的博客-CSDN博客
if-else
多重if
嵌套if
switch
5循环结构forJava基础05 循环结构_恒哥~Bingo的博客-CSDN博客
while
do-while
break和continue
嵌套循环
6数组基础数组简介Java基础06 数组基础_恒哥~Bingo的博客-CSDN博客
数组的定义
数组的初始化
foreach循环
Arrays工具
二维数组的使用
7数组算法求最大值Java基础07 数组算法(顺序查找、冒泡排序、选择排序、二分查找)_恒哥~Bingo的博客-CSDN博客
顺序查找
冒泡排序
选择排序
二分查找
8方法方法的概述Java基础08 方法_调用有参方法时传入的值可以为cloud_恒哥~Bingo的博客-CSDN博客
无参的方法
有参的方法
基本类型和引用类型参数的区别
方法的重载
带返回值的方法
可变参数
9面向对象~类和对象面向对象的概念Java基础09 面向对象~类和对象_恒哥~Bingo的博客-CSDN博客
类和对象的概念
面向对象编程
属性和方法
构造方法
this关键字
面向对象的内存分配
10面向对象~封装封装的概念Java基础10 面向对象~封装_恒哥~Bingo的博客-CSDN博客
访问修饰符
getter和setter方法
对象之间的通信
11面向对象~继承继承的相关概念Java基础11 面向对象~继承_恒哥~Bingo的博客-CSDN博客
super关键字
继承中的构造方法
final关键字
抽象类
12面向对象~多态什么是多态Java基础12 面向对象~多态_恒哥~Bingo的博客-CSDN博客
多态的作用
如何实现多态
Object类
equals和==的区别
向上向下转型
instanceof运算符
13面向对象~static关键字和单例模式静态属性Java基础13 面向对象~static关键字和单例模式_恒哥~Bingo的博客-CSDN博客
静态属性内存分析
静态方法
静态常量
静态导入
单例模式
14面向对象~接口和内部类接口是什么Java基础14 面向对象~接口和内部类_恒哥~Bingo的博客-CSDN博客
接口的作用
接口的使用
接口和抽象类的区别
静态内部类
成员内部类
局部内部类
匿名内部类
15Java常用类String类Java基础15 Java常用类_恒哥~Bingo的博客-CSDN博客
StringBuffer类和StringBuilder类
包装类
日期相关API
Math类
Random类
Runtime类
System类
16集合集合框架体系介绍Java基础16 集合(ArrayList、LinkedList、HashSet、HashMap)_恒哥~Bingo的博客-CSDN博客
集合和数组的区别
Collection接口
List、Set、Map接口
ArrayList集合,数据结构和源码分析
LinkedList集合,数据结构和源码分析
HashMap集合,数据结构和源码分析
17集合Collections类Java基础17 集合(排序和迭代,Lambda表达式)_集合的sorted和foreach_恒哥~Bingo的博客-CSDN博客
Comparable接口
Comparator接口
Lambda表达式
18异常Java的异常体系             Java基础18 异常_异常哥后面是什么_恒哥~Bingo的博客-CSDN博客
异常的概念及分类
try-catch的基本用法
多重catch的用法
finally的基本用法
finally和return执行顺序
throw、throws的基本用法
自定义异常
19
 
IO
 
IO流的分类及体系结构
Java基础19 IO基础_恒哥~Bingo的博客-CSDN博客
字节输入流
字节输出流
try with resource
字节缓冲流
打印流
字符流
字符缓冲流
数据流
装饰设计模式
Java基础20 装饰者模式_恒哥~Bingo的博客-CSDN博客
序列化
Java基础21 序列化和反序列化_恒哥~Bingo的博客-CSDN博客
20
 
网络编程网络编程相关概念Java基础22 网络编程(HTTP和UDP)_恒哥~Bingo的博客-CSDN博客
HTTP协议
HTTP网络编程
TCP/IP协议Java基础23 Socket手撸应用服务器_恒哥~Bingo的博客-CSDN博客
UDP协议
Socket编程
UDP编程
21JVMJVM内存模型JVM优化入门_恒哥~Bingo的博客-CSDN博客
GC机制
堆分代
JVM优化
类加载机制
21项目实战:亿度云盘v1C/S架构,客户端和服务器端通过网络通信,实现文件查询、上传、下载和删除功能https://edu.csdn.net/course/detail/31782

第二阶段 Java进阶

序号课程名称内容简介博客地址
1线程基础进程、线程的概念介绍聊聊多线程(一)线程的基础_线程是一段内存空间吗_恒哥~Bingo的博客-CSDN博客
线程的实现方式
Thread类的常用方法介绍
线程的启动和停止
线程的生命周期
线程的调度
2线程池线程池的作用聊聊多线程(二)线程池_恒哥~Bingo的博客-CSDN博客
线程池相关API
Executors常用方法
线程池的配置
线程池的原理
3线程同步线程同步问题介绍聊聊多线程(三)线程安全问题_恒哥~Bingo的博客-CSDN博客
同步方法
同步代码块
同步锁
死锁问题
AtomicInteger原子类聊聊多线程(四)线程安全之AtomicInteger类_恒哥~Bingo的博客-CSDN博客
volatile关键字
4线程通信
生产者消费者模式
聊聊多线程(五)生产者消费者模式_多线程 生产速度远超消费速度_恒哥~Bingo的博客-CSDN博客
阻塞队列
5XML解析和正则表达式JSON介绍Java基础25~XML和JSON解析_恒哥~Bingo的博客-CSDN博客
JSON解析
XML介绍
XML解析
正则表达式Java基础24~正则表达式_正则表达式1到24_恒哥~Bingo的博客-CSDN博客
6反射反射机制Java基础26~反射_恒哥~Bingo的博客-CSDN博客
类加载机制
反射的API
获得Class的几种方式
反射调用构造器、方法和属性
反射实现JSON解析
7MySQL基础MySQL的安装玩转MySQL(一)MySQL的安装_恒哥~Bingo的博客-CSDN博客
建库建表操作玩转MySQL(二)SQL基础_恒哥~Bingo的博客-CSDN博客
DML
8MySQL基本查询select语句玩转MySQL(三)基础查询_恒哥~Bingo的博客-CSDN博客
where子句
in\between\like子句
order by 排序
limit分页
9MySQL高级查询外键约束玩转MySQL(四)高级查询_查询在读并且参加过考试的学生信息_恒哥~Bingo的博客-CSDN博客
内连接
外连接
子查询
行转列玩转MySQL(五)常见的SQL面试问题:行转列_恒哥~Bingo的博客-CSDN博客
10MySQL索引、视图、存储过程索引的作用玩转MySQL(六)索引_恒哥~Bingo的博客-CSDN博客
索引的原理和数据结构
视图玩转MySQL(七)视图_恒哥~Bingo的博客-CSDN博客
存储过程玩转MySQL(八)存储过程_mysql存储过程 定义参数_恒哥~Bingo的博客-CSDN博客
11JDBCJDBC简介Java基础27~使用JDBC+连接池+反射编写简单的ORM框架_恒哥~Bingo的博客-CSDN博客
JDBC API介绍
实现基本的CRUD
批处理
数据库连接池
反射编写数据库工具类
12项目实战:亿度云盘添加了GUI界面,MySQL实现用户登录和文件管理,加入了多线程和反射等高级技能https://edu.csdn.net/course/detail/31782

第三阶段 JavaWeb

序号课程名称内容简介博客地址
1htmlHTML简介Web开发基础:HTML_web基础_恒哥~Bingo的博客-CSDN博客
HTML基本结构
HTML基本标签
表单
表格
内嵌框架
2cssCSS简介Web开发基础:CSS_恒哥~Bingo的博客-CSDN博客
CSS的语法
CSS的选择器
CSS的分类
CSS基本属性
盒子模型
DIV+CSS布局
3javascriptJS基本语法Web开发基础:JavaScript入门_恒哥~Bingo的博客-CSDN博客
DOM编程
函数和事件处理
表单验证
正则表达式
常用类:Date、Math、String、ArrayWeb开发基础:JavaScript常用类、面向对象和BOM_恒哥~Bingo的博客-CSDN博客
JS中的对象
Web开发基础:JavaScript轮播图_恒哥~Bingo的博客-CSDN博客
BOM编程
Web开发基础:JavaScript飞机大战_恒哥~Bingo的博客-CSDN博客
6HTTP协议和TomcatBS和CS结构JavaWeb HTTP协议原理和Tomcat的配置_恒哥~Bingo的博客-CSDN博客
主流服务器介绍
Tomcat的安装和配置
HTTP协议
GET和POST的区别
手写简单的服务器
7ServletServlet介绍JavaWeb Servlet的原理和使用_恒哥~Bingo的博客-CSDN博客
Servlet的定义
Servlet的配置
Servlet的生命周期
Servlet的方法参数
中文乱码的处理
Servlet线程安全
8JSPJSP的介绍JavaWeb JSP详解_恒哥~Bingo的博客-CSDN博客
JSP的原理
JSP的指令
JSP的内置对象
页面跳转的方法
EL表达式
JSTL标签
9上传下载和图片验证码文件上传JavaWeb 文件上传下载和图片验证码_恒哥~Bingo的博客-CSDN博客
文件下载
图片验证码
10会话跟踪Cookie机制JavaWeb 会话跟踪技术Cookie和Session_恒哥~Bingo的博客-CSDN博客
Cookie的使用
Session原理
Session的使用
11过滤器/监听器过滤器原理JavaWeb 监听器和过滤器_恒哥~Bingo的博客-CSDN博客
过滤器生命周期
过滤器链
过滤器实现登录验证
监听器原理
监听器的使用
监听在线用户
12JQueryJquery选择器Web开发基础:JQuery详解_jq icwebch_恒哥~Bingo的博客-CSDN博客
Jquery常用方法
事件处理
动画
13AjaxAjax原理JavaWeb Ajax详解_恒哥~Bingo的博客-CSDN博客
XMLHttpRequest
JQuery的Ajax
Ajax实现用户名重复验证
14VueVue入门快速入门Vue(一)Vue入门_vue 快速教程_恒哥~Bingo的博客-CSDN博客
Vue基本指令快速入门Vue(二)Vue的基本指令_恒哥~Bingo的博客-CSDN博客
Vue-Cli的使用快速入门Vue(三)Vue-Cli的基本使用_恒哥~Bingo的博客-CSDN博客
Vue-Router的使用快速入门Vue(四)Vue-Router的基本使用_恒哥~Bingo的博客-CSDN博客

第四阶段 JavaEE框架

序号课程名称内容简介博客地址
1MavenMaven介绍Hello Maven快速入门_恒哥~Bingo的博客-CSDN博客
什么是Maven
Maven的安装
Maven的仓库
Maven仓库的分类
Maven的配置
在IDEA配置Maven
Maven项目的结构
POM文件介绍
依赖管理
项目生命周期管理
继承和聚合
依赖冲突的调解
2Git版本控制Hello Git快速入门_恒哥~Bingo的博客-CSDN博客
GIT的特点
GIT的工作流程
GIT使用方法
IDEA中配置GIT
3Spring IOCSpring框架简介Spring框架(一) IOC_恒哥框架_恒哥~Bingo的博客-CSDN博客
Spring框架的组件
IOC概念
Spring IOC的XML的实现
Spring IOC的注解的实现
使用反射+注解实现IOC
IOC源码解析Spring源码解析(一)IOC_ioc源码在那个包下_恒哥~Bingo的博客-CSDN博客
4Spring AOPAOP的相关概念Spring框架(二)AOP基础_恒哥~Bingo的博客-CSDN博客
AOP在Spring中的实现
注解配置
AOP在项目中的应用
AOP实现日志收集
SpringAOP的实现原理Spring框架(三)AOP动态代理模式_恒哥~Bingo的博客-CSDN博客
静态代理
JDK动态代理
Cglib动态代理
AOP源码解析Spring源码解析(二)AOP_恒哥~Bingo的博客-CSDN博客
5SpringMVC基础MVC设计模式Spring框架(四)SpringMVC基础_实验四spring mvc基础报告_恒哥~Bingo的博客-CSDN博客
MVC的执行流程
Struts2.0和SpringMVC的区别
SpringMVC执行流程
入门案例
处理参数
处理返回数据
SpringMVC的常用注解
页面跳转
简单的登录案例
6SpringMVC高级
拦截器概念
Spring框架(五)SpringMVC高级_恒哥~Bingo的博客-CSDN博客
拦截器的使用
文件上传
文件下载
前后端分离
RestFul
RESTFul风格的API
7MyBatis基础MyBatis简介MyBatis框架(一)MyBatis基础_全自动框架mybatie_恒哥~Bingo的博客-CSDN博客
什么是ORM
MyBatis和Hibernate的区别
MyBatis的基本使用
MyBatis的查询
8MyBatis高级动态SQLMyBatis框架(二)MyBatis高级_mybatis框架高级_恒哥~Bingo的博客-CSDN博客
if/where/set/trim/foreach标签
关联查询
collection实现一对多关联
association实现一对一关联
延迟加载
MyBatis两级缓存机制
MyBatis源码解析手撸MyBatis(一)源码解析_恒哥~Bingo的博客-CSDN博客
手敲MyBatis手撸MyBatis(二)模拟实现_恒哥~Bingo的博客-CSDN博客
9SpringBootSpringBoot简介SpringBoot入门_io.spring.initalizr:initializr-web版本_恒哥~Bingo的博客-CSDN博客
SpringBoot创建项目
SpringBoot的配置
SpringBoot整合MyBatis-Plus+Thymeleaf+拦截器_恒哥~Bingo的博客-CSDN博客
SpringBoot整合MVC
SpringBoot整合MyBatis
SpringBoot自动配置的原理_springboot的自动配置的原理_恒哥~Bingo的博客-CSDN博客
SpringBoot配置拦截器
SpringBoot的配置原理
10ShiroRBAC权限管理SpringBoot整合Shiro实现权限管理_sprigboot+shirooa系统_恒哥~Bingo的博客-CSDN博客
Shiro介绍
Shiro入门
自定义Realm
密码加密加盐
SpringBoot+MyBatis+Shiro整合
RememberMe
11LinuxLinux的安装Linux入门(一) ~ Linux的安装_linux的software selection的区别_恒哥~Bingo的博客-CSDN博客
Linux的常用命令Linux入门(二) ~ Linux的常用命令_恒哥~Bingo的博客-CSDN博客
Linux的网络配置Linux入门(三) ~ Linux的网络配置_恒哥~Bingo的博客-CSDN博客
JDK和Tomcat的安装Linux入门(四) ~ JDK和Tomcat的安装_tomcat 8.0.53 jdk_恒哥~Bingo的博客-CSDN博客
MySQL的安装Linux入门(五) ~ MySQL的安装_恒哥~Bingo的博客-CSDN博客
12NginxNginx能做什么Nginx实现负载均衡和文件服务器_文件服务器负载均衡_恒哥~Bingo的博客-CSDN博客
正向/反向代理
Nginx的安装
Nginx+Vsftp搭建文件服务器
负载均衡概念
Nginx负载均衡
13Docker为什么要使用Docker
Docker的基本使用和SpringBoot项目部署_恒哥~Bingo的博客-CSDN博客
容器化
虚拟机和容器
Docker的架构
安装Docker使用IDEA的Docker插件部署SpringBoot项目_恒哥~Bingo的博客-CSDN博客
Docker的基本使用
Docker安装MySQL
在Docker上部署Springboot项目
14Jenkins持续集成/持续交付/持续部署认识大管家Jenkins(一)入门_恒哥~Bingo的博客-CSDN博客
Jenkins安装
Jenkins的配置认识大管家Jenkins(二)部署SpringBoot项目_恒哥~Bingo的博客-CSDN博客
Webhook配置
Jenkins自动部署SpringBoot项目
15项目实战前后端分离架构OA项目SpringBoot+Vue+ElementUIhttps://edu.csdn.net/course/detail/31433
权限管理系统https://edu.csdn.net/course/detail/35233

第五阶段 分布式

序号课程名称内容简介博客地址
1SpringCloud Eureka为什么使用微服务
为什么使用注册中心
Eureka注册中心使用
Eureka的自我保护机制
Eureka的安全配置
Eureka的集群配置
2SpringCloud Ribbon负载均衡
服务器端负载均衡和客户端负载均衡
Ribbon负载均衡策略
RestTemplate的用法
3SpringCloud Hystrix服务可用性
服务雪崩问题
Hystrix的使用
Hystrix的隔离模式
4SpringCloud FeignFeign是什么
Feign怎么用
Feign处理各种参数
Feign原理
Feign优化
5SpringCloud Zuul服务网关的作用
Zuul介绍
Zuul的基本使用
Zuul的路由规则
Zuul的过滤器
Zuul限流
Zuul超时优化
6SpringCloud ConfigConfig的介绍
Config的基本使用
动态更新配置
7ElasticsearchElasticsearch介绍Elasticsearch的安装和基本使用_恒哥~Bingo的博客-CSDN博客
Elasticsearch的安装
Kibana安装
安装分词器
SprngBoot整合ElasticsearchSpringBoot整合Elasticsearch_恒哥~Bingo的博客-CSDN博客
ElasticsearchRepository操作索引
查询操作
8RabbitMQ消息队列是什么RabbitMQ的安装_恒哥~Bingo的博客-CSDN博客
消息队列的作用
主流的消息队列
RabbitMQ的安装
RabbitMQ的几种消息队列模式RabbitMQ的五种消息队列_queueingconsumer_恒哥~Bingo的博客-CSDN博客
SpringBoot整合RabbitMQSpringBoot整合RabbitMQ实现数据同步_rabbitmq exchange 同步_恒哥~Bingo的博客-CSDN博客
9RedisRedis简介Redis入门HelloWorld_恒哥~Bingo的博客-CSDN博客
Redis安装和使用
Redis的数据类型
SpringBoot整合Redis
SpringBoot整合Redis实现声明式缓存_恒哥~Bingo的博客-CSDN博客
声明式缓存
事务Redis事务+分布式锁+持久化策略+淘汰策略_分布式锁效率和乐观锁比较_恒哥~Bingo的博客-CSDN博客
分布式锁
淘汰策略
持久化策略
10微信支付支付流程微信支付的实现_微信支付实现_恒哥~Bingo的博客-CSDN博客
实现微信支付接入
微信平台通知后台
11JWT单点登录RSA加密算法JWT单点登录_恒哥~Bingo的博客-CSDN博客
JWT
单点登录实现流程
解决cookie写入失败的问题
12SpringCloud Alibaba

Nacos 服务注册与发现

SpringCloud Alibaba 入坑(一)Nacos 服务注册与发现_恒哥~Bingo的博客-CSDN博客

Nacos 配置中心

SpringCloud Alibaba 入坑(二)Nacos 配置中心_恒哥~Bingo的博客-CSDN博客

Sentinel入门

SpringCloud Alibaba 入坑(三)Sentinel入门_恒哥~Bingo的博客-CSDN博客

Sentinel基本流控规则

SpringCloud Alibaba 入坑(四)Sentinel基本流控规则_恒哥~Bingo的博客-CSDN博客

Sentinel高级流控规则

SpringCloud Alibaba 入坑(五)Sentinel高级流控规则_恒哥~Bingo的博客-CSDN博客

@SentinelResource注解

SpringCloud Alibaba 入坑(六)@SentinelResource注解_恒哥~Bingo的博客-CSDN博客
分布式事务SeataSpringCloud Alibaba(七)Seata 分布式事务_恒哥~Bingo的博客-CSDN博客
13ShardingSphere分库分表四种分库分表策略使用Sharding-JDBC实现分库分表_恒哥~Bingo的博客-CSDN博客
水平分库
水平分表
公共表
读写分离
15面试题Java经典面试题汇总200道_恒哥~Bingo的博客-CSDN博客

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恒哥~Bingo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值