文章目录
-
- Day01
- Day02
- Day03
- Day04
-
- 1. 使用new String("super")语句在Java中会创建多少个对象?
- 2. Java中final、 finally和finalize 各有什么区别?
- 3. 为什么JDK 9中将String的char数组改为byte数组?
- 4. 如果一个线程在Java中被两次调用start()方法,会发生什么?
- 5. Java中wait()和sleep()的区别?
- 6. Java的Optional类是什么?它有什么用?
- 7. Java的I/O流是什么?
- 8. Java中静态方法和实例方法的区别是什么?
- 9. 什么是Java中的迭代器(Iterator) ?
- 10. Java中for循环与foreach循环的区别是什么?
- Day05
Day01
1. Java中的序列化和反序列化?
- 1.定义
序列化:将对象转换为字节流的过程;
反序列化:将字节流转换为对象的过程;
应用场景:网络传输、远程调用、持久化存储以及分布式系统中数据交换; - 2.用途
Java序列化机制- 实现
Serializable
接口的类才能序列化; objectoutputstream
类用于序列化,objectInputstream
类用于反序列化;- 对于不需要序列化的字段,用
transient
关键字修饰; - 反序列化时会用
serialversionUID
验证版本的一致性,值不同,会导致反序列化失败;- i.默认根据类的定义自动生成,调整字段,会导致UID不同;
- ii.因此推荐自定义UID的值,例如
private static final long serialVersionUID= 1
;
- 序列化不会存储静态变量的
- 实现