1 序列化、反序列化
序列化是将数据结构或对象转换成一种可存储或可传输格式的过程,通常涉及将数据转换成字节流或类似的格式,以便在不同平台和编程语言之间进行传输和交换。反序列化是将序列化后的数据重新还原成原始的数据结构或对象,从文件、网络数据或数据库中读取序列化的数据,并将其转换回原始形式,以便在程序中进行使用和操作。这两个概念在编程中与数据存储、传输和处理密切相关,为开发工作带来便利1
2 异常

2.1 Exception和Error
- 
Exception:程序本身可以处理的异常,可以通过catch来进行捕获。Exception又可以分为 Checked Exception (受检查异常,必须处理) 和 Unchecked Exception (不受检查异常,可以不处理)。
- 
Error:Error属于程序无法处理的错误
RuntimeException 及其子类都统称为非受检查异常,常见的有(建议记下来,日常开发中会经常用到):
- 
NullPointerException(空指针错误)
- 
IllegalArgumentException(参数错误比如方法入参类型错误)
- 
NumberFormatException(字符串转换为数字格式错误,IllegalArgumentException的子类,s包含非数字字符,或者为null)
- 
ArrayIndexOutOfBoundsException(数组越界错误)
- 
ClassCastException(类型转换错误)
- 
ArithmeticException(算术错误)
- 
SecurityException(安全错误比如权限不够)
- 
UnsupportedOperationException(不支持的操作错误比如重复创建同一用户)
2.1.1 如何使用 try-with-resources 代替try-catch-finally?
| //读取文本文件的内容 | 
使用 Java 7 之后的 try-with-resources 语句改造上面的代码:
| try (Scanner scanner = new Scanner(new File("test.txt"))) { | 
3 泛型
在 java 中泛型只是一个占位符,必须在传递类型后才能使用。类在实例化时才能真正的传递类型参数,由于静态方法的加载先于类的实例化,也就是说类中的泛型还没有传递真正的类型参数,静态的方法的加载就已经完成了,所以静态泛型方法是没有办法使用类上声明的泛型的。只能使用自己声明的
<E>
泛型一般有三种使用方式:泛型类、泛型接口、泛型方法。