基础
- 类和对象的概述
- 分析对象在内存中的存储
- 成员变量和局部变量的区别
- private关键字的应用
- this关键字的应用
- this关键字的内存原理
- 面向对象特性之封装
- 构造方法(Constructor)
- 构造方法的注意事项
- 标准类的定义规范
API基础 - API的使用方式
- String类的特点
- String类的常用构造方法
- 字符串的比较规则
- 用户登录的案例
- 遍历字符串的方式
- 字符串的拼接
- 字符串的反转操作
- StringBuilder类的作用
- StringBuilder类的构造方法
- StringBuilder类的常用方法
- 用StringBuilder完成字符串拼接和反转
04、集合基础 - ArrayList集合的特点
- ArrayList的构造方法
- ArrayList的常用操作
- 集合存储自定义类型并遍历
基础 - 面向对象特性之继承
- 继承的好处和弊端
- super关键字的作用
- 继承时子父类的访问特点
- 方法的重写(Override)
- package关键字的作用
- import关键字的作用
- final关键字的作用
- static关键字的作用
- static关键字内存分析
- 面向对象特性之多态
- 多态的好处和弊端
- 多态中成员访问的特点
- 多态中的数据类型转型
- instanceof关键字的使用
- 抽象类的特点
- 抽象类的成员特点
- 模板设计模式
- 接口的概述
- 接口的特点和注意事项
- 类、抽象类、接口之间的关系
- 内部类的概述
- 成员内部类的使用
- 局部内部类的使用
- 匿名内部类的使用
- 匿名内部类在开发中的应用
- Math类及其常用方法
- System类及其常用方法
- Object类的toString()和equals()方法
- Objects类以及常用方法
- BigDecimal类及其常用方法
- 二分查找原理以及代码实现
- 冒泡排序的原理分析及代码实现
- 递归的应用和注意事项
- 快速排序原理以及代码实现
- jar包的制作以及使用
- Arrays类及其常用方法
- 基本类型的包装类
- 自动拆箱和自动装箱
- Optional类以及使用
- ProcessBuilder类以及使用
- 日期Date类型及其常用方法
- 日期格式化类SimpleDateFormat
- 日历Calendar类的使用
- Jdk8新增的日期Date API(LocalDateTime,LocalDate,LocalTime,
Instant,Period,Duration) - NumberFormat类以及使用
- 异常的概述
- JVM默认处理异常的方式
- 异常处理方式之try…catch
- 异常处理方式之throws
- Throwable的常用方法
- 异常的分类和区别
- 异常的注意事项
- 自定义异常的使用
04、集合
81. 集合体系结构
82. 单列集合体系的详细讲解
83. 迭代器的使用
84. 增强for循环的使用
85. forEach方法遍历
86. 并发修改异常的产生原因和解决办法
87. 数据结构之栈和队列
88. 数据结构之数组和链表
89. ArrayList集合源码分析
90. LinkedList集合源码分析
91. 双列集合体系的详细讲解
92. Map集合的遍历方式
93. TreeSet的自然排序和比较器排序
94. 数据结构之树
95. 数据结构之二叉树
96. 数据结构之二叉平衡树
97. 数据结构之红黑树
98. TreeSet(TreeMap)底层源码分析
99. 数据结构之哈希表
100. Jdk1.7中HashSet(HashMap)源码分析
101. Jdk1.8中HashSet(HashMap)源码分析
102. 泛型的使用
103. 泛型通配符的使用
104. 可变参数的使用和注意事项
05、IO
105. File类对文件的操作
106. IO流的概述和分类
107. 字节流写数据的方式
108. FileOutputStream和BufferedOutputStream源码分析
109. 字节流读数据的方式
6.FileInputStream和BufferedInputStream源码分析
110. 字节流完成视频文件的复制
111. 编码表
112. 字符流写数据的方法
113. 字符串读数据的方法
114. 字符缓冲流的使用
115. 字符缓冲流的特有方法
116. 标准输入输出流
117. 打印流的使用
118. 对象序列化流
119. serialVersionUID&transient
06、多线程
- 进程和线程的区别
- Java实现多线程的三种方式
- 线程API之线程名称
- 线程API之线程休眠
- 线程API之线程礼让
- 线程API之线程优先级
- 线程API之线程中断
- 线程API之后天线程
- 线程的安全问题
- 同步代码块
- 同步方法
- Lock锁
- 死锁概述以及现象演示
- 死锁诊断(jstack工具的使用)
- 线程通讯之生产者消费者问题
- 线程通讯代码实现之同步代码块
- 线程通讯代码实现之Condition实现
通信
16.线程通讯代码实现之阻塞队列
(BlockingQueue)实现 - 线程的状态
- 线程池概述
- 自定义线程池
- Executors创建线程池
- ThreadPoolExecutor创建线程池
22.ThreadPoolExecutor原理介绍以及
任务拒绝策略介绍 - volatile关键字
- JMM内存模型
- 原子性概述
- 原子类AtomicInteger类的使用
- CAS算法
28.并发容器ConcurrentHashMap原
理讲解
29.并发工具类(CountDown Latch,Semaphore,CyclicBarrier,Exchanger)的使用 - Properties的用法
- 内存操作流的使用
- RandomAccessFile使用
- SequenceInputStream的使用
- 压缩流/解压缩流
07、网络编程
- 网络编程的概述
- 网络编程的三要素之ip地址(ipv4,ipv6)
- InetAddress类的操作
- 网络编程的三要素之端口和协议的详
细解释 - 网络参考模型
- UDP协议发送与接收数据
- 聊天小程序案例
- UDP协议中广播与组播
- TCP协议发送与接收数据
- 多线程下文件的上传
- NIO概述
- NIO之Buffer的使用
- NIO之Channel的使用
- NIO之Selector的使用
- 自定义非阻塞式的HTTP静态服务器
08、Lambda - Lambda表达式的标准写法
- Lambda的省略规则
- Lambda和匿名内部类的区别
- JDK8和9对接口组成的更新
- 方法引用的介绍
- Stream流的中间操作
- Stream流的终结操作
- Stream流的收集操作
09、反射
1.虚拟机类加载机制(概述,类加载过
程,类的初始化时机)
2.类加载器(概述,分类,双亲委派机
制,ClassLoader类,自定义类加载) - 反射机制的概述
- 获取Class类的对象
- 反射获取构造方法并使用
- 反射获取成员方法并使用
- 反射获取成员变量并使用
9.自定义非阻塞式的HTTP动态服务器