为了读者的阅读,尽量避免长语句!
根据以上图:得出ArrayList 实现List、RandomAccess、Cloneable、Serializable接口。
序列化Serializable是一个"标识性"的接口,即支持“序列化与反序列化”。
案例:
解读:本次创建类有 Person、实现有参构造、toString方法
解读:
1、SerializableDemo 为测试类,测试使用ArrayList添加Person类。
2、当Person类不实现Serializable接口的情况。
运行该SerializableDemo类主方法时出现:Exception in thread "main" java.io.NotSerializableException: test.arraylist.demo.entity.Person
翻译:序列化失败,应该实现Serializable接口才可以序列化以及反序列等操作!
既然程序提示我们必须实现Serializable接口才可以序列化以及反序列化等操作,那么我们按照程序的规则。
把Person类实现Serializable 接口
运行SerializableDemo类主方法得到
总结:
1、Arraylist实现Serializable 接口,本质是标识它支持被序列化与反序列
2、使用ArrayList 添加对象时,如果没有实现序列化Serializable接口,则抛出异常,要求你按照规则实现Serializable接口