个人视频跟敲源码:/download/qq_44009317/74539388
注:文章会不断更新,会针对不同的知识点添加一些遇到面试题,同时内容也会根据自己学到的东西不断完善。
概述(一)
1、Java语言发展史
1.1 Java语言
1.2 Java语言发展史
2、Java语言跨平台原理
2.1 平台
2.2 跨平台
2.3 Java语言跨平台原理
3、JRE和JDK
3.1 JRE(Java Runtime Environment)
3.2 JDK(Java Development Kit)
3.3 JDK、JRE和JVM的关系
第一个程序(二)
1、常用DOS命令
1.1 打开命令提示符窗口
1.2 常用命令
2、Path环境变量的配置
2.1 为什么要配置Path环境变量
2.2 如何配置Path环境变量
2.3 如何检测配置Path环境变量是否成功
3、HelloWorld案例
3.1 Java程序开发运行流程
3.2 HelloWorld案例的编写
3.3 HelloWorld案例的编译和运行
4、BUG的起源
基础语法(三)
1、注释
1.1 注释概述
1.2 注释格式
2、关键字
2.1 关键字概述
2.2关键字的特点
3、常量
3.1 常量概述
3.2 常量分类
4、数据类型
4.1 计算机存储单元
4.2 数据类型
4.3 数据类型内存占用和取值范围
5、变量
5.1 变量概述
5.2 变量定义
5.3 变量的使用
5.4 变量使用的注意事项
6、标识符
6.1 标识符概述
6.2 标识符定义规则
6.3 常见命名约定
7、类型转换
7.1 类型转换分类
7.2 自动类型转换
7.3 强制类型转换
运算符(四)
1、算数运算符(5个)
1.1 运算符和表达式
1.2 算术运算符
1.3 字符的“+”操作
1.4 字符串的“+”操作
2、赋值运算符(6个)
3、自增自减运算符(2个)
4、关系运算符(6个)
5、逻辑运算符(6个)
5.1 概述
5.2 逻辑运算符
5.3 短路逻辑运算符
6、三元运算符(1个)
数据输入Scanner的使用(五)
1.1 导包
1.2 创建对象
1.3 接收数据
分支语句(六)
1、流程控制
1.1 流程控制语句分类
1.2 顺序结构
2、if语句
2.1 if语句格式1
3.1 if语句格式2
3.2 if语句格式3
3、switch语句
3.1 switch语句格式
循环语句(八)
1、for循环语句
1.1 循环结构
1.2 for循环语句格式
1.3 案例:水仙花
2、while循环语句
3、do…while循环语句
3.1 do…while循环语句格式
3.2 三种循环的区别
4、控制跳转语句
5、循环嵌套
6、Random
6.1 Random的作用和使用步骤
IDEA(九)
1、IDEA概述和安装
2、IDEA中的HelloWorld的实现
3、IDEA中的项目结构
3.1 IDEA中的项目结构
3.2 设置字体
4、IDEA中的内容辅助键和快捷键
4.1 内容辅助键
4.2 快捷键
5、IDEA中的模块操作
数组(十)
1、数组定义格式
1.1 数组概述
1.2 数组的定义格式
2、数组初始化之动态初始化
2.1 数组初始化概述
2.2 数组初始化方式
2.3 动态初始化
3、数组元素访问
4、内存分配
5、数组初始化之静态初始化
6、数组操作的两个常见小问题
7、数组相关常见操作
7.1 遍历
7.2 获取数组元素数量
7.3 获取最值
方法(十一)
1、方法概述
2、方法的定义和调用
2.1 方法定义
2.2 方法调用
2.3 形参和实参
3、方法的注意事项
4、方法重载
4.1 方法重载概述
4.2 方法重载的特点
5、方法参数的传递
5.1 方法基本类型参数的传递
5.2 方法引用类型参数的传递
5.3 案例:数组遍历
Debug(十二)
1.1 Debug概述
1.2 Debug操作流程
面向对象基础(十三)
1、类和对象
1.1 什么是对象
1.2 什么是面向对象
1.3 什么是类
1.4 什么的对象的属性
1.5 什么的对象的行为
1.6 类和对象的关系
1.7 类的定义
1.8 对象的使用
2、对象内存图
2.1 对象的内存图(单个对象)
2.2 对象的内存图(多个对象)
2.3 对象的内存图(多个对象指向相同)
3、成员变量和局部变量
3.1 什么是成员变量和局部变量
3.2 成员变量和局部变量的区别
4、封装
4.1 private关键字
4.2 private关键字的使用
4.3 this关键字
4.4 this内存原理
4.5 封装
5、构造方法
5.1 构造方法概述
5.2 构造方法的注意事项
5.3 标准类制作
API(十四)
1、API
1.1 API概述
1.2 如何使用帮助文档
2、String
2.1 String
2.2 String构造方法
2.3 String对象的特点
2.4 字符串的比较
2.5 面试题——统计字符次数
2.6 通过帮助文档查看String中的方法
3、StringBuilder
3.1 StringBulider概述
3.2 StringBuilder构造方法
3.3 StringBuilder的添加和反转方法
3.4 StringBuilder和String互相转换
案例:拼接字符串
案例:字符串反转
3.5 通过帮助文档查看StringBuilder中的方法
集合基础(十五)
1.1 集合概述
1.2 ArrayList构造方法和添加方法
1.3 ArrayList集合常用方法
案例一:存储字符串并遍历
案例二:存储学生对象并遍历
案例三:键盘存储学生对象并遍历
学生管理系统(十六)
1.1 学生管理系统实现思路
1.2 定义学生类
1.3 主界面的代码编写
1.4 添加学生的代码编写
1.5 查看学生的代码编写
1.6 查看学生的代码编写升级版
1.7 删除学生的代码编写
1.8 修改学生信息的代码编写
1.9 解决添加学生学号重复问题
继承(十七)
1.1 继承概述
1.2 继承的好处和弊端
1.3 继承中变量的访问特点
1.4 super
1.5 继承中构造方法的访问特点
1.6 继承中成员方法的访问特点
1.7 super的内存图
1.8 方法重写
1.9 方法重写的注意事项
1.10 继承的注意事项
案例一:老师和学生
案例二:猫和狗
修饰符(十八)
1、包
2、导包
2.1 导包的概述和使用
3、修饰符
3.1 修饰符的分类
3.2 权限修饰符
3.3 状态修饰符
多态(十九)
1.1 多态概述
1.2 多态中成员访问特点
1.3 多态的好处和弊端
1.4 多态中的转型
1.5 多态转型内存解析
1.6 案例一:猫和狗
抽象类与接口(二十)
1、抽象类
1.1 抽象类概述
1.2 抽象类的特点
1.3 抽象类的成员特点
案例:猫和狗
2、接口
2.1 接口概述
2.2 接口的特点
2.3 基于抽象类和接口,得出的多态的形式和前提总结
2.4 接口的成员特点
案例:猫和狗
2.5 类和接口的关系
2.6 抽象类和接口的区别
案例:运动员和教练
3、面向对象中的形参和返回值
1.1 类名作为形参和返回值
1.2 抽象类名作为形参和返回值
1.3 接口名作为形参和返回值
内部类(二十一)
1.1 内部类概述
1.2 成员内部类
1.3 局部内部类
1.4 匿名内部类
1.5 匿名内部类在开发中的使用
常用API(二十二)
1、Math
1.1 Math类概述
1.2 Math类的常用方法
2、System
2.1 System类概述
2.2 System类的使用方法
3、Object
3.1 Object类的概述
3.2 Object类的常用方法
3.3 toString()
3.4 equals()
4、Arrays
4.1 冒泡排序
4.2 Arrays类的概述和常用方法
5、基本类型包装类
5.1 基本类型包装类概述
5.2 Integer类的概述和使用
5.3 int和String的相互转换
案例:字符串中数据排序
5.4 自动装箱和拆箱
6、日期类
6.1 Date类概述和构造方法
6.2 Date类的常用方法
6.3 SimpleDateFormat类概述
6.4 SimpleDateFormat的构造方法
6.5 SimpleDateFormat格式化和解析日期
案例:日期工具类
6.6 Calendar类概述
6.7 Calendar的常用方法
案例:二月天
异常(含扩展)(二十三)
1.1 异常概述与异常体系结构
1.2 JVM遇到异常时的默认处理方案
1.3 异常处理
1.4 异常处理之try……catch……
1.5 Throwable的成员方法
1.6 编译时异常和运行时异常的区别
1.7 异常处理之throws
1.8 自定义异常
集合进阶之Collection(二十四)
1.1 集合知识回顾
1.2 集合类体系结构
1.3 Collection集合概述和使用
1.4 Collection集合的常用方法
1.5 Collection结合的遍历
1.6 集合使用步骤
案例:Collection集合存储学生对象并遍历
集合进阶之List(二十五)
2.1 List集合概述和特点
2.2 List集合特有方法
案例:List集合存储学生对象并遍历
2.3 并发修改异常
2.4 ListIterator
2.5 增强for循环
案例:List集合存储学生对象用三种方式遍历
2.6 数据结构
2.7 List集合子类特点
2.8 LinkedList集合的特有功能
集合进阶之Set(二十六)
3.1 Set集合的概述和特点
3.2 哈希值
3.3 HashSet集合概述和特点
3.4 HashSet集合保证元素唯一源码分析
3.5 常见的数据结构之5哈希表
案例:HashSet集合存储学生对象并遍历
3.6 LinkedHashSet集合概述和特点
3.7 TreeSet集合概述和特点
3.8 自然排序Comparable的使用
3.9 比较器排序Comparator的使用
案例:成绩排序
案例:不重复的随机数
集合进阶之泛型(二十七)
4.1 泛型概述
4.2 泛型类
4.3 泛型方法
4.4 泛型接口
4.5 类型通配符
4.6 可变参数
4.7 可变参数的使用
集合进阶之Map(二十八)
5.1 Map集合概述和使用
5.2 Map集合的基本功能
5.3 Map集合的获取功能
5.4 Map集合的遍历(方式1)
5.5 Map集合的遍历(方式2)
案例:HashMap集合存储学生对象并遍历
案例:HashMap集合存储学生对象并遍历
案例:ArrayList集合存储HashMap元素并遍历
案例:HashMap集合存储ArrayList元素并遍历
案例:统计字符串中每个字符出现的个数
集合进阶之Collections(二十九)
6.1 Collections概述和使用
案例:ArrayList存储学生对象并排序
案例:模拟斗地主
案例:模拟斗地主升级版
IO流之File(三十)
1.1、File类概述
1.2 File类的创建功能
1.3 File类删除功能
1.4 File类判断和获取功能
1.5 递归
案例:递归求阶乘
案例:遍历目录
IO流之字节流(三十一)
2.1 IO流概述和分类
2.2 字节流写数据
2.3 字节流写数据的三种方式
2.4 字节流写数据的两个小问题
2.5 字节流写数据加异常处理
2.6 字节流读数据
案例:复制文本文件
2.6 字节流读数据(一次读一个字节数组)
案例:复制图片
2.7 字节缓冲流
案例:复制视频
IO流之字符流(三十二)
3.1 为什么会出现字符流
3.2 编码表
3.3 字符串中的编码解码问题
3.4 字符流中的编码解码问题
3.5 字符流写数据的5种方式
3.6 字符流读数据的两种方式
3.7 案例:复制Java文件
案例:复制Java文件(改进版)
3.7 字符缓冲流
案例:复制Java文件(字符缓冲流改进版)
3.8 字符缓冲流的特有功能
案例:复制Java文件(字符缓冲流特有功能改进版)
3.9 IO流小结
案例:集合到文件
案例:文件到集合
案例:点名器
案例:集合到文件(学生数据版)
案例:文件到集合(学生数据版)
案例:集合到文件(学生数据排序版)
案例:复制多级文件夹
3.10 复制文件的异常处理
IO流之特殊操作流(三十三)
4.1 标准输入输出流
4.2 打印流
案例:复制Java文件(打印流改进版)
4.3 对象序列化流
4.4 Properties
案例:游戏次数
多线程之实现多线程(三十四)
1.1 进程
1.2 线程
1.3 多线程的实现方式1
1.4 设置和获取线程名称
1.5 线程调度
1.6 线程控制
1.7 线程生命周期
1.8 多线程的实现方式2
多线程之线程同步(三十五)
案例:卖票
2.1 卖票案例的思考
2.2 卖票案例数据安全问题的解决
2.3 同步代码块
2.4 同步方法
2.5 线程安全的类
2.6 Lock锁
多线程之生产者消费者(三十六)
3.1 生产者和消费者
3.2 生产者消费者案例
多线程之反射(三十七)
1、类加载器
1.1 类加载
1.2 类加载器
2、反射
2.1 反射概述
2.2 获取Class类的对象(字节码文件对象)
2.3 反射获取构造方法并使用
2.4 反射获取构造方法并使用练习1
2.5 反射获取成员变量并使用
2.6 反射获取成员变量并使用练习
2.7 反射获取成员方法并使用
2.7 反射获取成员方法并使用练习
2.9 反射练习
多线程之模块化(三十八)
1.1 模块化概述
1.2 模块的基本使用
1.3 模块服务的使用