在Java中,对象序列化表示将对象表示为字节序列。字节包括对象的数据和信息。可以将序列化的对象写入文件/数据库,然后从文件/数据库中读取并反序列化。代表对象及其数据的字节可用于在内存中重新创建对象。
当您需要通过网络发送对象或存储在文件中时,通常使用序列化。网络基础结构和硬盘只能理解位和字节,而不能理解Java对象。序列化将Java对象转换为字节,然后通过网络发送或保存。
实体类都要实现序列化接口!!!
对于不想进行序列化的变量,使用transient关键字修饰。
transient关键字的作用是:阻止实例中那些用此关键字修饰的变量序列化,当对象被反序列化时,被transient修饰的变量值不会被持久化和恢复。
transient只能修饰变量,不能修饰类和方法。
1.方便子类继承,子类的构造方法中,往往默认使用super()调用父类的无参构造方法,super()往往可以省略不写,但是父类中如果没有定义构造方法,子类中就要显示写出super()并传参数。
2.大量框架中会使用反射创建对象,在使用反射创建对象时,往往用无参构造方法
3.自定义构造方法时,程序员可能会忽略没有空参构造方法