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>
泛型一般有三种使用方式:泛型类、泛型接口、泛型方法。