vlambda博客
学习文章列表

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++的安装

  • 第一段程序_ 编译 _执行

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

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

第2阶段 :JAVA语言语法

数据类型 标识符

  • 关键字

  • 常量_字面常量

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

  • 变量的内存(重要)

  • 变量的作用域

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

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

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

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

  • 解释乱码问题

  • 基本数据类型之布尔类型

  • 基本数据类型转换问题

  • 习题:fifinal_字符常量

  • 习题 _ 加深对Scanner的使用

运算符

  • JAVA中的运算符概述

  • 算数运算符_除法 _取余

  • 算数运算符_加号

  • 算数运算符 _自增

  • 赋值运算符

  • 扩展数值运算符

  • 关系运算符

  • 逻辑运算符

  • 三元运算符

  • 位运算符

  • 运算符_总结

  • 运算符的优先级别

流程控制

  • 引入

  • 分支结构_if单分支

  • 分支结构_if多分支

  • 随机数

  • 分支的嵌套使用_练习1

  • 分支的嵌套使用_练习2

  • 分支结构_switch分支

  • 循环结构_while循环

  • 循环结构_while循环练习

  • 循环结构_do-while循环

  • 循环结构_for循环

  • 循环结构_关键字break

  • 循环结构_关键字continue

  • 循环结构_循环练习

  • 循环结构_循环嵌套

  •  

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

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

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

  • 引入

  • 项目最终效果演示

  • 整体结构完成

  • 登记收入

  • 登记支出

  • 收支明细错误细节

  • 退出功能

  •  

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

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

方法的定义,调用,重载

  • 方法的定义和调用

  • 方法提取的练习

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

  • 方法的重载

数组

  • 数组的引用

  • 数组的学习

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

  • 数组的三种初始化方式

  • 数组的应用_最值问题

  • 数组的应用_查询问题

  • 数组的应用_添加元素

  • 数组的应用_删除元素

  • 详述main方法

  • 可变参数

  • Arrays工具类的使用

  • 数组的复制

  • 二维数组的定义和遍历

  • 二维数组的初始化方式

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

  • 需求介绍

  • 涉及技能点

  • 项目演示

  • 菜单展示

  • 购买彩票

  • 开奖整体结构完善

  • 生成中奖单号细节

  • 对比号码细节和完善

  •  

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

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

第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学习路线及视频(万字长文)

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

阶段项目:贪吃蛇小游戏

  • 引入

  • 小蛇行动原理图

  • 将图片加载到程序中来

  • 创建窗体

  • 创建面板

  • 画静态的小蛇

  • 将蛇头按照行走方向改变

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

  • 小蛇向右动起来

  • 小蛇上下左右动起来

  • 画食物吃食物

  • 画积分

  • 死亡判定

  • 游戏打包

  •  

 

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

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

第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学习路线及视频(万字长文)

 

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