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


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

一门永不过时的编程语言——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++的安装

第一段程序_ 编译 _执行

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

第2阶段 :JAVA语言语法

数据类型 标识符

关键字

常量_字面常量

变量的声明,赋值,使用 (重要

变量的内存(重要)

变量的作用域

基本数据类型之整数类型变量

基本数据类型之浮点类型常量的两种形式

基本数据类型之浮点类型变量

基本数据类型之字符类型(1-2)

解释乱码问题

基本数据类型之布尔类型

基本数据类型转换问题

习题:fifinal_字符常量

习题 _ 加深对Scanner的使用

运算符

JAVA中的运算符概述

算数运算符_除法 _取余

算数运算符_加号

算数运算符 _自增

赋值运算符

扩展数值运算符

关系运算符

逻辑运算符

三元运算符

位运算符

运算符_总结

运算符的优先级别

流程控制

引入

分支结构_if单分支

分支结构_if多分支

随机数

分支的嵌套使用_练习1

分支的嵌套使用_练习2

分支结构_switch分支

循环结构_while循环

循环结构_while循环练习

循环结构_do-while循环

循环结构_for循环

循环结构_关键字break

循环结构_关键字continue

循环结构_循环练习

循环结构_循环嵌套

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

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

引入

项目最终效果演示

整体结构完成

登记收入

登记支出

收支明细错误细节

退出功能

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

方法的定义,调用,重载

方法的定义和调用

方法提取的练习

面试题 _两个数交换是否成功

方法的重载

数组

数组的引用

数组的学习

数组习题完善_数组的遍历方式

数组的三种初始化方式

数组的应用_最值问题

数组的应用_查询问题

数组的应用_添加元素

数组的应用_删除元素

详述main方法

可变参数

Arrays工具类的使用

数组的复制

二维数组的定义和遍历

二维数组的初始化方式

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

需求介绍

涉及技能点

项目演示

菜单展示

购买彩票

开奖整体结构完善

生成中奖单号细节

对比号码细节和完善

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

第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之后新增)

内部类_ 成员内部类

内部类_ 局部内部类

阶段项目:比萨点餐系统

项目需求

项目结构分析

父类子类创建

测试类逻辑

工厂类的提取

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

阶段项目:贪吃蛇小游戏

引入

小蛇行动原理图

将图片加载到程序中来

创建窗体

创建面板

画静态的小蛇

将蛇头按照行走方向改变

加入监听,空格来控制游戏是否开

小蛇向右动起来

小蛇上下左右动起来

画食物吃食物

画积分

死亡判定

游戏打包

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

第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工具类

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

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新增属性

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学习、面试;文档、视频资源免费获取》

你可能感兴趣的:(2020最新全面Java学习路线及视频(万字长文))