为什么对象要实现Serializable接口
Serializable:可序列化
1.序列化是什么?
序列化就是指对象通过写出描述自己状态的数值来记录自己的过程,即将对象表示成一系列有序字节(二进制文件),反序列化是将顺序倒过来,从有序的字节中表示成原来的对象
2.序列化的用途?
序列化在开发中经常用到,主要的应用场景在网络传输和文件IO流得写入和写出,网络传输上,客户端将对象序列化为二进制字节然后传输到服务器,服务器反序列化为对象,进行逻辑处理。没有实现Serializable接口的对象是无法通过IO操作持久化的。
3.java实现得序列化机制的原理:
java提供了将对象写入流和从流中恢复对象的方法。对象能包含其它的对象,而其它的对象又可以包含另外的对象。对于一个对象的简单域,writeObject()直接将其值写入流中。当遇到一个对象域时,writeObject()被再次调用,如果这个对象内嵌另一个对象,那么,writeObject()又被调用,直到对象能被直接写入流为止。程序员所需要做的是将对象传入ObjectOutputStream的writeObject()方法,剩下的将有系统自动完成。