2020最新全面Java学习路线及视频(万字长文)

2020最新全面Java学习路线及视频(万字长文)_第1张图片

 

声明,本人能力有限,只是列出来参考,不对之处欢迎指正。

一门永不过时的编程语言——Java 软件开发。

Java编程语言占比:

据官方数据统计,在全球编程语言工程师的数量上,Java编程语言以1000万的程序员数量位居首位。 而且很多软件的开发都离不开Java编程,因此其程序员的数量最多。而在以Java编程为核心的开发领域中,javaEE程序员的需求量10年来一直居于首位!

Java工程师就业:

1.通过各大招聘网站统计,全国海量公司都在招聘Java开发工程师

2.北京Java开发工程师平均薪资,即19208元

3.全国Java开发薪资前三:北京 上海 深圳

Java到底学什么?

很多人可以刚学完Java时完全不知道Java的结构是怎样的,导致学习的知识点零星、散落,这也是为什么明明很基础的内容,但是一段时间之后自己却想不起来是怎么写的。没有梳理知识的脉络,将所学打通,融汇于一处。废话了一通。

 

Java学习路线

共细分16个部分

第一阶段_java开篇

第2阶段 :JAVA语言语法

第3阶段:集成开发工具的使用

第4阶段:面向对象

第5阶段:JavaSE进阶学习

第6阶段 :数据库+JDBC

第7阶段 :前端精讲

第8阶段 :算法篇

第9阶段 :JavaEE

第10阶段 :工具的使用

第11阶段 :Linux

第12阶段 :SSM框架的使用

第13阶段 :SpringBoot的使用

第14阶段 : 面试篇

第15阶段:微服务阶段

第16阶段:分布式

第一阶段_java开篇

java初步 计算机语言的发展历史


  • 程序中常见错误
  • 编译方式扩展: classpath环境变量
  • 扩展 : JAVA_HOME 环境变量
  • API
  • 代码量统计工具的使用
  • 单行注释和多行注释
  • 文档注释
  • 反编译工具的使用
  • 本章最后一段代码
  • 扩展面试题 :JDK ,JRE
  • JAVA简史
  • JAVA体系结构
  • JAVA特性和优势
  • JAVA核心机制之垃圾收集机制
  • 核心机制之 JAVA跨平台原理
  • JAVA核心机制之对比C语言的跨平台原理
  • JAVA常用的DOS命令
  • notepad++的安装
  • 第一段程序_ 编译 _执行

2020最新全面Java学习路线及视频(万字长文)_第2张图片

学习视频私信“学习”免费领取

第2阶段 :JAVA语言语法

数据类型 标识符

  • 关键字
  • 常量_字面常量
  • 变量的声明,赋值,使用 (重要
  • 变量的内存(重要)
  • 变量的作用域
  • 基本数据类型之整数类型变量
  • 基本数据类型之浮点类型常量的两种形式
  • 基本数据类型之浮点类型变量
  • 基本数据类型之字符类型(1-2)
  • 解释乱码问题
  • 基本数据类型之布尔类型
  • 基本数据类型转换问题
  • 习题:fifinal_字符常量
  • 习题 _ 加深对Scanner的使用

运算符

  • JAVA中的运算符概述
  • 算数运算符_除法 _取余
  • 算数运算符_加号
  • 算数运算符 _自增
  • 赋值运算符
  • 扩展数值运算符
  • 关系运算符
  • 逻辑运算符
  • 三元运算符
  • 位运算符
  • 运算符_总结
  • 运算符的优先级别

流程控制

  • 引入
  • 分支结构_if单分支
  • 分支结构_if多分支
  • 随机数
  • 分支的嵌套使用_练习1
  • 分支的嵌套使用_练习2
  • 分支结构_switch分支
  • 循环结构_while循环
  • 循环结构_while循环练习
  • 循环结构_do-while循环
  • 循环结构_for循环
  • 循环结构_关键字break
  • 循环结构_关键字continue
  • 循环结构_循环练习
  • 循环结构_循环嵌套
  •  

2020最新全面Java学习路线及视频(万字长文)_第3张图片

学习视频私信“学习”免费领取

阶段项目:小鲨鱼记账软件

  • 引入
  • 项目最终效果演示
  • 整体结构完成
  • 登记收入
  • 登记支出
  • 收支明细错误细节
  • 退出功能
  •  

2020最新全面Java学习路线及视频(万字长文)_第4张图片

学习视频私信“学习”免费领取

方法的定义,调用,重载

  • 方法的定义和调用
  • 方法提取的练习
  • 面试题 _两个数交换是否成功
  • 方法的重载

数组

  • 数组的引用
  • 数组的学习
  • 数组习题完善_数组的遍历方式
  • 数组的三种初始化方式
  • 数组的应用_最值问题
  • 数组的应用_查询问题
  • 数组的应用_添加元素
  • 数组的应用_删除元素
  • 详述main方法
  • 可变参数
  • Arrays工具类的使用
  • 数组的复制
  • 二维数组的定义和遍历
  • 二维数组的初始化方式

阶段项目:双色球彩票模拟系统

  • 需求介绍
  • 涉及技能点
  • 项目演示
  • 菜单展示
  • 购买彩票
  • 开奖整体结构完善
  • 生成中奖单号细节
  • 对比号码细节和完善
  •  

2020最新全面Java学习路线及视频(万字长文)_第5张图片

学习视频私信“学习”免费领取

第3阶段:集成开发工具的使用

IDEA的基本使用教程

  • IDE的概念
  • JetBrains公司介绍
  • Intellij IEDA介绍
  • IDEA的下载_安装前的准备工作
  • IDEA的卸载
  • IDEA的安装和破解
  • IDEA页面展示
  • Module 的概念和使用
  • IDEA的常用设置
  • IDEA的常用快捷键

  • 代码模板是什么
  • 常用的代码模板
  • 修改代码模板
  • 创建代码模板
  • 断电调试_常用断点调试快捷键
  • 断点调试_条件判断
  • 断点调试_查看表达式值
  • 创建JavaWeb项目
  • 在IDEA中添加Tomcat的镜像
  • 在IDEA中配置Git
  • 在IDEA中配置Maven

 

第4阶段:面向对象

面向对象

  • 面向对象_面向过程和面向对象的区别
  • 面向对象_类和对象的关系
  • 面向对象_面向对象三个阶段
  • 面向对象_创建类
  • 面向对象_创建对象
  • 面向对象_局部变量和成员变量的区别
  • 面向对象_构造器
  • 面向对象_构造器的重载
  • 面向对象_内存分析
  • 面向对象_this的使用
  • 面向对象_static修饰属性
  • 面向对象_static修饰方法
  • 面向对象_代码块
  • 面向对象_ 包 _import _

封装

  • 封装的总结
  • 继承的引入
  • 继承的代码演示
  • 继承总结
  • 继承的内存分析
  • 权限修饰符
  • 方法的重写
  • super修饰属性 ,方法
  • super修饰构造器
  • super修饰构造器补充
  • 继承条件下构造方法的执行过程
  • Object类的toSring方法
  • Object类的equals方法(1)
  • Object类的equals方法(2)_ instanceof
  • Object类的equals方法(3)
  • 类和类之间的关系1
  • 多态
  • 多态内存分析
  • 向上转型_ 向下转型
  • 简单工厂设计模式
  • fifinal修饰符
  • 抽象类_抽象方法
  • 接口(JDK1.8之前)
  • 接口(JDK1.8之后新增)
  • 内部类_ 成员内部类
  • 内部类_ 局部内部类

阶段项目:比萨点餐系统

  • 项目需求
  • 项目结构分析
  • 父类子类创建
  • 测试类逻辑
  • 工厂类的提取

2020最新全面Java学习路线及视频(万字长文)_第6张图片

学习视频私信“学习”免费领取

阶段项目:贪吃蛇小游戏

  • 引入
  • 小蛇行动原理图
  • 将图片加载到程序中来
  • 创建窗体
  • 创建面板
  • 画静态的小蛇
  • 将蛇头按照行走方向改变
  • 加入监听,空格来控制游戏是否开
  • 小蛇向右动起来
  • 小蛇上下左右动起来
  • 画食物吃食物
  • 画积分
  • 死亡判定
  • 游戏打包
  •  

 

2020最新全面Java学习路线及视频(万字长文)_第7张图片

图片中的学习视频私信“资料”免费领取

第5阶段:JavaSE进阶学习

异常

  • 异常的案例引入
  • 处理异常方式:if-else
  • 处理异常方式:try-catch捕获
  • catch中处理异常的几种方式
  • fifinally讲解
  • 多重catch
  • 异常的分类/层次结构
  • throw和throws的区别
  • 异常练习
  • 重载和重写异常的区别
  • 自定义异常

常用类

  • 包装类_引入
  • 包装类常用属性常用构造器
  • 包装类自动装箱自动拆箱
  • 包装类_常用方法
  • 日期相关_java.util.Date
  • 日期相关_java.sql.Date
  • 日期相关_SimpleDateFormat
  • 日期相关_Calendar
  • 日期相关_Calendar练习需求
  • 日期相关_Calendar练习完成
  • 日期相关_JDK1.8新增日期时间API的原因
  • 日期相关_JDK1.8新增LocalDateTime
  • 日期相关_JDK1.8新增LocalDateTim
  • 日期相关_JDK1.8新增DateTimeFormatter
  • Math类
  • Random类
  • String的底层本质

集合

  • 什么是算法什么是数据结构
  • 紧密结构,跳转结
  • 集合的引入
  • 简要集合结构图
  • 集合的应用场合
  • Cllection接口的常用方法
  • Cllection接口的遍历方式
  • List接口
  • ArrayList实现类JDK1.7源码
  • ArrayList实现类JDK1 .8源码
  • Vector实现类源码
  • 泛型的引入
  • 自定义泛型结构泛型类泛型接口
  • 自定义泛型结构泛型类泛型接口细节
  • 自定义泛型结构泛型方法
  • 自定义泛型结构泛型参数存在继承关系的情况
  • 自定义泛型结构通配符
  • 自定义泛型结构通配符使用的细节
  • 自定义泛型结构泛型受限
  • LinkedList实现类的使用
  • LinkedL ist简要底层原理图
  • 模拟LinkedList源码
  • LinkedL ist源码解析(JDK1.8)
  • iterator()面试题
  • 迭代器具体实现
  • Listlterator迭代器
  • Set接口介绍
  • HashSet的特点
  • HashSet的简要原理
  • HashSet原理留下的疑问
  • LinkedHashSet的使用
  • 比较器的使用
  • TreeSet的使用及原理
  • Map接口中常用方法1
  • Map接口中常用方法2
  • Hashtable的使用
  • TreeMap的使用
  • HashMap的原理简单介绍
  • HashMap中重要属性
  • HashMap的构造器
  • HashMap的put方法
  • HashMap底层数组的扩容
  • HashMap的两个经典面试题
  • HashSet底层原理
  • TreeMap底层源码
  • TreeSet底层源码
  • Collections工具类
  •  

2020最新全面Java学习路线及视频(万字长文)_第8张图片

 

IO流

  • File类的引入
  • File对文件的操作
  • File对目录的操作
  • I0流的引入
  • FileReader读取文件内容(1.2)
  • FileWriter写出数据操作
  • FileReader,FileWriter完成文件复制
  • 警告-不要用字符流去操作非文本文件
  • 利用try-catch-fifinally处理异常方式
  • FilelnputStream读取文件中内容
  • FilelnputStream,FileOutputStream完成非文本文件的复制缓冲字节流(处理流)- BufferedInputStream ,BufferedOutputStream
  • 比对非文本文件复制的三种方法的效率
  • 缓冲字符流(处理流)-BufferedReader,BufferedWriter完成文本文件的复制
  • 转换流-InputStreamReader,OutputStreamWriter
  • 转换流-InputStreamReader,OutputStreamWriter实现文本文件的复制
  • System类对I0流的支持
  • 练习:键盘录入内容输出到文件中
  • 数据流- DatalnputStream,DataOutputStream
  • 对象流序列化和反序列化
  • 实现Serializable接口
  • serialVersionUlD
  • IDEA中配置序列化版本号
  • 序列化细节

多线程

网络编程

  • 网络编程的引入
  • InetAddress,InetSocketAddress
  • 网络通信原理套接字的引入
  • TCP通信单向通信
  • TCP通信对象流传送
  • TCP通信加入完整的处理异常方式
  • TCP通信_多线程接收用户请求
  • UDP通信_单向通信
  • UDP通信_双向通信
  • UDP通信加入完整的异常处理方式
  • UDP通信完整正常通信

阶段项目:坦克大战

  • new出一个窗口
  • 设定标题栏内容
  • TankFrame从Frame继承+显示
  • 认识paint方法,重写
  • 学习graphics类,画图
  • 学习repaint方法
  • 实现MyKeyListener,对键盘作出响应
  • MyKeyListener
  • 取得具体按键信息
  • 根据具体按键调整坦克位置,持有对方引用
  • 抽象出坦克类,学习使用枚举类型
  • MyKeyListener,TankFrame
  • 用匿名内部类处理窗口关闭
  • 根据按键状态,改变坦克方向
  • 用双缓冲消除闪烁
  • 加一堆敌人坦克
  • 做碰撞检测
  • 显示爆炸
  • 加入声音
  • 让敌人坦克更加智能
  • 对坦克和子弹加入 Group属性
  • 测试Properties类的使用
  • 建立PropertyMgr类
  • MV分开 Model View分离
  • GameModel 改成单例模式
  • 对于碰撞的处理
  • 创建实例
  • 抽象出游戏物体的父类
  • 合成GameModel中的各种不同物体
  • 完善责任链模式
  • 加入墙
  • 按键切换发射策略
  • 实现暂停功能
  • 实现存盘功能
  • 使用Junit测试服务器loop
  • 去掉敌人的坦克(机器控制的坦克)
  • 处理接收到的消息
  • player新的构造方法
  • 让后来人能看到先加入者
  • 加入坦克方向改变的消息
  • 重构代码
  • 处理改变坦克方向的消息
  • 发送主战坦克停止的消息
  • 发送主战坦克开始移动的消息(方向没变)
  • 加入子弹和Player的撞击逻辑
  • 把主战坦克也加入到List中
  • 完成坦克大战网络版
  • 根据坦克方向移动位置
  • 能停,能动
  • test包,关于classloader的知识
  • 将坦克换成图片版
  • 画出一颗子弹,让子弹飞一会儿
  • 按下ctrl键,主战坦克打出一发炮弹
  • 打出多发子弹
  • 子弹从坦克中心位置打出
  • 子弹消亡(飞出游戏区)
  • 定义rectangle属性,不用每次都new
  • 炮弹new出来自动加入容器,死掉后自动去除
  • 分离玩家和机器人,对边界进行不同的处理

JUnit

  • Junit单元测试引入
  • 没有Junit的情况下如何测试
  • Junit的使用
  • @Before_ @After

枚举

  • 引入自定义枚举类
  • JDK1.5后使用enum关键字定义枚举类
  • enum定义枚举类补充
  • Enum类的常用方法
  • 枚举类实现接口
  • 枚举的应用

注解

  • 注解的引入
  • 注解实例_Junit注解
  • 注解实例_文档注解
  • 注解实例_JDK内置的3个注解
  • 注解实例_替代配置文件的注解
  • 自定义注解
  • 元注解的概念解释
  • 元注解_Retention
  • 元注解_Retention补充
  • 元注解_Target
  • 元注解_Documented
  • 元注解_Inherited

反射机制

  • 反射的引入
  • 反射概念
  • Class类
  • 提供丰富的类
  • 获取字节码信息的四种方式
  • 可以作为Class类的实例的种类
  • 补充上面的丰富的类中的内容
  • 获取构造器和创建对象
  • 获取属性和对属性进行赋值
  • 获取方法和调用方法
  • 获取类的接口,所在包,注解
  • 关于反射的面试题

第6阶段 :数据库+JDBC

 

2020最新全面Java学习路线及视频(万字长文)_第9张图片

 

Oracle+MySQL+JDBC

  • oracle安装介绍
  • oracle SQL
  • oracle函数和多表连接
  • oracle的join语法及行专列
  • oracle视图、用户管理、序列、DML
  • 数据库的事务
  • 数据库表的创建、表的约束、索引、数据库
  • JDBC及代码分层
  • 反射技术实现及封装
  • DBUtil及数据库连接池(dbcp、c3p0)
  • 数据库连接池(druid、hikariCP)及索引
  • mysql的执行计划
  • mysql的锁机制
  • mysql的主从复制和读写分离

MyCat

  • MyCat第一讲.第二讲.第三讲

第7阶段 :前端精讲

HTML

  • HTML和CSS的引入
  • 网络传输三大基石
  • 什么是HTML
  • HTML的标准结构
  • HBuilder的使用
  • html_head_body标签
  • head中可用标签
  • 文本标签
  • 多媒体标签
  • 超链接标签
  • +
  • 超链接设置锚点
  • 列表标签
  • 列表标签
  • 内嵌框架
  • 内嵌框架练习 (1.2)
  • 框架集合
  • form表单的作用
  • form表单细节
  • form表单练习模拟百度搜索
  • 表单元素(1)
  • 表单元素(2)
  • HTML5新增type类型
  • HTML5新增属性
  •  

2020最新全面Java学习路线及视频(万字长文)_第10张图片

 

CSS

  • CSS的引入
  • CSS的三种书写方式
  • 明白学习CSS的重点
  • 选择器_基本选择器
  • 选择器关系选择器
  • 选择器_属性选择器
  • 选择器_伪类选择器
  • 练习:百度导航栏
  • 浮动的原理
  • 消除浮动影响
  • 定位_静态定位相对定位
  • 定位绝对定位
  • 定位_固定定位
  • 盒子模型引入
  • 盒子模型代码演示
  • 盒子模型练习题

JS

  • js介绍及内置功能函数、数据类型、变量
  • js的变量及运算符
  • js的流程控制语句
  • js的函数基本使用
  • js的数组和字符串的基本使用
  • dom操作、常用方法、事件绑定
  • echarts和js对象、函数上下文
  • js构造函数、js原型链、继承及实战案例

JQuery

  • jquery简介、选择器、常用方法
  • jquery的节点关系及函数操作
  • jquery轮播图及函数库介绍)

Ajax

  • Http协议、php的基本介绍
  • ajax基本原理及使用
  • ajax的接受数据的方式及三级联通案例
  • Vue框架的介绍及使用
  • vue框架的介绍及使用
  • vue框架的调色板、属性值监听、函数
  • vue框架的生命周期、组件使用
  • vue框架的高阶使用

因文章内容过多分上下篇

文章中图片真实可靠,需要学习视频私信“资料”二字免费领取

如果觉得还不错的话,可以点点关注,和转发

此文章为原创, 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

《Java学习、面试;文档、视频资源免费获取》

你可能感兴趣的:(java,java基础)