一、基础语法
数据类型
基本数据类型:byte、short、int、long
基本数据类型:float、double
基本数据类型:char、boolean
引用数据类型:类、接口、数组
变量声明与初始化
变量的声明方式
变量的初始化
变量的作用域
常量(final关键字)
运算符
算术运算符
赋值运算符
关系运算符
逻辑运算符
位运算符与三元运算符
控制流语句
if - else条件语句
switch - case多分支语句
for循环语句
while与do - while循环语句
break与continue语句
return语句
方法定义与调用
方法的定义
方法的调用
参数传递:值传递
参数传递:引用传递
五、字符串
String类的特性
不可变性
常量池
字符串拼接
字符串比较
字符串的创建
字面量创建
new关键字创建
intern方法的使用
String类的构造方法
字符串的常用方法
length()方法
charAt()方法
substring()方法
equals()与equalsIgnoreCase()方法
indexOf()与lastIndexOf()方法
concat()与replace()方法
其他常用方法
StringBuffer和StringBuilder
可变字符串的概念
StringBuffer的使用
StringBuilder的使用
线程安全性比较
六、集合框架
集合框架的体系结构
Collection接口
List接口
Set接口
Map接口
ArrayList和LinkedList
ArrayList的特点与使用场景
LinkedList的特点与使用场景
ArrayList与LinkedList的区别
List接口的常用实现类
Vector和ArrayList
Vector的特点
Vector与ArrayList的比较
Vector的同步性
Vector的常用方法
HashSet、LinkedHashSet和TreeSet
HashSet的特点与应用
LinkedHashSet的特点与应用
TreeSet的特点与应用
Set接口的常用实现类
HashMap、LinkedHashMap和TreeMap
HashMap的特点与应用
LinkedHashMap的特点与应用
TreeMap的特点与应用
Map接口的常用实现类
集合的遍历
迭代器Iterator
增强for循环
forEach方法
集合遍历的注意事项
并发集合
ConcurrentHashMap的使用
CopyOnWriteArrayList的使用
CopyOnWriteArraySet的使用
并发集合的应用场景
八、IO流
IO流的分类
字节流与字符流
输入流与输出流
节点流与处理流
缓冲流与非缓冲流
File类的使用
文件的创建与删除
目录的创建与遍历
文件的属性获取
文件的重命名与移动
字节流
InputStream与OutputStream
FileInputStream与FileOutputStream
BufferedInputStream与BufferedOutputStream
DataInputStream与DataOutputStream
字符流
Reader与Writer
FileReader与FileWriter
BufferedReader与BufferedWriter
InputStreamReader与OutputStreamWriter
缓冲流
缓冲流的作用
BufferedInputStream与BufferedOutputStream的使用
BufferedReader与BufferedWriter的使用
缓冲流的应用场景
缓冲流与节点流的区别
序列化与反序列化
Serializable接口的使用
ObjectInputStream与ObjectOutputStream的使用
序列化与反序列化的应用场景
序列化中的注意事项
九、多线程
线程的概念与创建方式
线程的概念
继承Thread类创建线程
实现Runnable接口创建线程
Callable接口与Future接口的使用
线程创建的注意事项
线程的生命周期
新建状态
就绪状态
运行状态
阻塞状态与死亡状态
线程状态的转换
线程生命周期的管理
线程的同步
synchronized关键字的使用
Lock接口与ReentrantLock类的使用
synchronized与Lock的区别
线程同步的应用场景
线程的通信
wait、notify、notifyAll方法的使用
生产者-消费者问题
线程通信的应用场景
线程通信中的注意事项
线程池
Executor框架的使用
ThreadPoolExecutor类的使用
线程池的配置参数
线程池的应用场景
原子类
AtomicInteger类的使用
AtomicLong类的使用
原子类的应用场景
原子类与synchronized的区别