第1章 内容介绍
# 第 1 章 内容介绍
本JavaSE系列笔记主要参考韩顺平老师的B站课程,根据老师的建议,在学习过程中要记笔记,因此整理了下目前学过的课程和代码,并且老师也鼓励宣传,感兴趣的同学可以听听。我也是看鱼皮推荐这门课来学习的。
B站地址:【零基础 快速学Java】韩顺平 零基础30天学会Java_哔哩哔哩_bilibili (opens new window)
# Java后端技术体系
对应视频的第1讲:内容介绍
课程名字:韩顺平循序渐进学Java(零基础),会考虑到零基础的小伙伴,所以讲解的会比较细,接下来我们会介绍下这门课程。如果是零基础的人,就跟着老师规划循序渐进的学;如果有基础的,也可以学,因为本门课是很丰富的,可以从第二个阶段甚至第三个阶段开始学。
- 第一部分:Java基础
- 第二部分:Java高级
- 第三部分:JavaWeb
- 第四部分:主流的框架和项目管理
- 第五部分:分布式 微服务 并行架构
- 第六部分:Devops(开发运维一体化),自动化部分管理项目,解决CI/CD
- 第七部分:大数据技术(可以弱化)
- 第八部分:项目
- 第九部分:大厂的高频面试题
- 第十部分:底层源码/内核研究
- 编程基础的扩展(科班)
本课程是讲第一部分,Java基础。可以分为3个阶段。本课程是以提高大家的编程能力为核心来讲解的,不是盲目的灌输知识。
如果是零基础,一定要从第一个阶段开始学,不要跳过;如果有,可以从第二部分开始学,本堂课讲解的内容非常丰富,可以让你意识到之前是否有什么知识点没学到位
第一阶段,建立编程思想
Java概述,让大家知道Java是什么
- 如何快速学习Java
- Java历史
- Java特定
- 编辑器sublime
- Java运行机制
- JDK的安装
- 转义字符
- Java开发规范
- Java API
变量
- 数据类型
- 变量基本使用
- 数据类型转换
运算符:各种运算符,优先级,重点是二进制与位运算
控制结构
- 顺序
- 分支(if else switch)
- 循环(for, while, do while),很多小伙伴在学Java的时候容易在这里蒙圈
- continue和break
- return
数组、排序和查找
- 数组
- 排序:讲基础,高级的在第二部分:Java高级在学
- 查找:讲基础,高级的在第二部分:Java高级在学
面向对象编程(基础)
- 类与对象
- 成员方法
- 成员方法传参机制
- overload
- 可变参数
- 作用域
- 构造器
面向对象编程(中级)
- 包
- 访问修饰符
- 封装,继承,多态:面向对象的三大特征,理解这个后在后面的学习都是一马平川,无论是学底层学框架
- Super
- overwrite
- Object类详解
- 断点调试
项目&学以致用,编程之乐:零钱通(微信的),房屋出租系统,迷宫问题,八皇后问题,汉诺塔问题。会用到我们学的面向对象的思想,非常有成就感。
第二阶段,建立编程能力
面向对象高级:
- 类变量和类方法
- 理解main方法语法
- 代码块
- 单例设计模式
- final关键字
- 抽象类
- 接口,重要且难度大
- 内部类,重要且难度大大
枚举和注解
- 自定义类实现枚举
- enum关键字实现枚举
- JDK内置的基本注解类型
- 元注解:对注解进行注解
Exception:
- 异常的概念
- 异常体系图
- 常见的异常
- 异常的处理
- 自定义异常
- throw和throws的区别
常用类
- 包装类
- String,StringBuilder和StringBuffer,同时也是面试最常问的
- math
- Date、Calendar、localDate
- System
- Arrays
- BigInteger BigDecimal
集合
- 集合框架体系
- Collection:List和Set,ArrayList,LinkedList,Vector,HashSet,LinkedHashSet,TreeSet
- Map:HashMap, Hashtable, LinkedHashMap, TreeMap, Properties
- Collections
泛型
- 泛型语法
- 自定义泛型:泛型类,泛型接口,泛型方法
- 泛型继承和通配符
线程基础
- 线程介绍
- 线程使用:继承Thread,实现Runnable
- 线程方法
- 线程生命周期
- Synchronized
- 互斥锁
- 死锁
IO流
文件:概念和操作
IO流原理和分类
节点流和处理流
输入流:
- InputSteam:字节输入流
- Reader:字符输入流
输出流
- OutputStream:字节输出流
- Writer:字符输出流
Properties类
项目:坦克大战,非常有用,用到了多线程编程,真正的学以致用
第三阶段:分析需求的能力,代码实现能力
网络编程
- 网络基础
- InetAddress
- Socket
- TCP编程:字节流和字符流
- UDP编程
反射(将来学底层框架使用的)
- 反射机制
- Class类
- 类的加载
- 反射 获取类的结构信息
MySQL基础(后面讲高级篇,优化,集群和项目实战)
- MySQL安装和配置
- 数据库:创建,查看和删除,备份恢复
- 表:创建,删除,修改
- MySQL数据类型
- CRUD:select算比较难的
- 函数:统计函数,时间日期,字符串函数,数学函数,流程控制
- 内连接和外连接
- 约束:not null, primary key
- 索引:主键索引,唯一索引,普通索引
- 事务
JDBC和连接池
- JDBC概述
- JDBC快速入门
- JDBC API
- JDBCUtils
- 事务
- 批处理
- 连接池:DataSource,DBCP,C3P0,Proxool,BoneCP,Druid
- apache DBUtils
- DAO增删改查通用
正则表达式
- 快速入门
- 基本语法
- 三个常用类:pattern,matcher,patternSyntaxException
- 分组、捕获、反向引用
- 元字符:限定符,选择配符,分组组合和反向引用符,特殊字符,字符匹配符,定位符
Java8 Java11新特性
Java8:
- lambda,
- 函数式接口,
- 接口静态方法
- 接口默认方法
- 方法引用
- 构造器引用
- Stream API
- 并行流
- 串行流
- Optional
- 新时间日期API
Java11(也会讲了9和10的新特性):在Java8上的增强,还有性能
目前用的最多的要么是Java8,要么是Java11,因为Java8和11是长期支持版。
JShell
类型推断,集合增强API
Stream增强
新增字符串处理方法
Optional假期
InputStream增强API
标准Java异步HTTP客户
其他新特性:性能更好。
- 简化的编译运行
支持Unicode10
Epsilon垃圾收集器
ZGC
JFR
支持Linux容器
支持G1上的并行完全垃圾收集增加加密算法,代替RC4
最新HTTPS安全协议TLS1.3移除和废弃的内容
- 简化的编译运行
项目:骑士周游问题(算法与优化),满汉楼(酒店管理系统,界面会弱化,学习分析业务,报表统计等),多用户通信系统(推消息,私聊,发文件,多线程编程,网络编程,网络通讯机制)
根据这个大纲可以看到,我们讲的Java基础是很详细全面的
关于这套课程,老韩要给小伙伴们说
- 以培养编程思想、提升编程能力为核心目标,达到能分析业务需求,并能用代码实现水平
- 抛弃传统的以强灌知识点授课方式,每个阶段都有多个项目把知识点真正应用到项目中,小伙伴在学习过程中有满满成就感,充分体会编程乐趣
- 课程成完整体系,超全,超详细
- 充分考虑零基础小伙伴,通俗易懂
- 宁肯慢点,也不遗漏细节。【包括软件安装、开发环境配置和使用】
- 项目是从小到大的过程,项目分解成不同的功能模块,随功能的增加,将知识点融入到项目,整个过程是循序渐进的。让大家轻松的学,高效的学。
- 为减轻小伙伴学习压力,将课程分为三个阶段,小伙伴可以根据当前水平,选择从某个阶段开始学习
- 零基础的小伙伴,老韩强烈建议从第一阶段开始学习
- 因为课程内容非常全,录制周期长,老韩也会根据实际情况做微调,比如增加或删除某个知识点,
关于PPT课件:(ppt是老师专用的,没有给到学院)
- 1~9 是第一阶段
- 10~20是第二阶段
- 21~29是第三阶段
课程特色:每个阶段的每个章节,都会结合面试题 TMD(头条,美团,滴滴),然后评讲练习题,增强大家对知识点的理解,最后就是项目
# 老师介绍
对应视频的第2讲:学习前的话
韩顺平(国内著名软件培训高级讲师)毕业于清华大学,中国培训高级讲师,先后在新浪、点击科技、用友就职。多年来培训的学员已成功在用友、搜狐、阿里巴巴、中软等知名企业就职。【韩顺平(国内著名软件培训高级讲师)_百度百科 (opens new window)】
这套课程会考虑到零基础的小伙伴,讲解很细致;同时也会考虑到学过Java的小伙伴,即使工作了一段时间来听这么课,也能发现有些知识点没学到学透;
在2009年也出过 Java的学习视频,那个时代有很多人听这门课转行做程序员的,目前在很多大厂任职。
时隔多年,觉得有必要升级这门课程,录制一套全新的,花了很多时间和精力,励志于出一套精品课程;
录制视频的时候,如果觉得某个视频不太好,会直接删掉重录,励志于达到最好的讲解。如果这门课帮助到了你,欢迎转发。
# 就业方向
对应第3讲
我们讲下Java的就业方向,也是大家最感兴趣的。我们为什么要学Java基础?Java基础在有些地方也叫JavaSE,为什么要学透?因为不管从事Java哪方面的工作,都得有良好的Java基础,否则会很吃力
JavaEE工程师:电商,团购,众筹,SNS(社交),教育,金融,搜索
大数据软件工程师:主要是这3个方向,大数据应用工程师,大数据算法工程师,大数据分析和挖掘
Android软件工程师:Android平台
# 开发场景
第4讲
JavaSE有什么地方会用到呢?后续我们学习框架都是以JavaSE为基础的。例如如果分支都不会,学框架根本不用学,因为代码看都看不懂。
第一个常见的开发场景:学高级的课程,也得有扎实的JavaSE基础,例如Java多线程/高并发,数据结构,设计模式,JVM,主流的框架的等SSM:Spring + SpringMVC +Mybatis
第二个开发场景:Android核心代码
第三个开发场景:大数据-hadoop
如果没有JavaSE基础,看任何代码都看不下去
# Java应用领域
第5讲
刚刚是以程序员的角度来分析JavaSE的应用,现在我们从普通生活中分析,这些离我们很近,可以看到Java给我们生活带来的便利
企业级应用:主要指复杂的大企业的软件系统,各种类型的网站,应用领域包括金融,电信,交通,电子商务
Android平台应用:Android应用程序使用Java语言编写的,开发水平的高低很大程度上取决于Java核心能力
移动领域:主要是消费和嵌入式领域,例如机顶盒,车载设备,POS机
Java的应用非常广泛,可以做很多事情
本章就到这里,这里鼓励下大家:再牛的程序员都是从小白开始的。既然开始了,就全心投入学好技术
# 第一章小结
第6讲
每一个章节讲完后,我们会将本章讲解过的内容,整理到一个笔记上。
老师讲课用到的资料:
- 笔记:所有的内容,方便同学们的复习。
- 代码:用到的代码
- 课件:PPT和思维导图等
- 软件:JDK,IDE等
- 视频
- 资料:书籍,安装的步骤等
本章节我们学了什么:
1.1 本套Java课程内容
- 1.1.1 我们讲了课程的三个阶段,课程目标以及每个阶段要学什么,
- 1.1.2 关于课程的说明
- 1.1.3 课程特色:讲解知识点--练习题与面试题--评讲--项目
1.2 Java就业方向
1.3Java开发场景举例1:框架
1.4Java开发场景举例2:Android核心代码
1.5Java开发场景举例3:大数据-hadoop
1.6Java的应用领域
- 1.6.1企业级应用
- 1.6.2Android平台应用
- 1.6.3移动领域应用