遇到理论上不太懂的东西做一个记录,以后再遇到即使不懂回头看看自己的组织的语言就会很快明了。
以后面试也好说得出来个所以然。不定时更新,遇到了理论性的问题就记录。
1.Serializable(序列化与反序列化)
序列化:将对象转化成二进制存储到文件或数据库。
反序列化:将文件或数据库的数据转换成对象读取出来。
什么情况下需要序列化
a).当你想把内存中的对象保存到一个文件中或者数据库中的时候;
b).当你想用套接字在网络上传送对象的时候;
c).当你想通过RMI传输对象的时候;
2.@SuppressWarnings("user")
对象声明后没被使用会产生黄色下划线,会造成行码生成感叹号,用@SuppressWarnings可以抑制警告,将警告关闭。
多个类型的抑制
@SuppressWarnings(value={"unchecked", "rawtypes"})
所有类型的抑制
@SuppressWarnings(value={"all"})
3.UUID
在反序列化的时候使用这个标识的值来判断序列化和反序列化的对象类型是否一致。Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。