Java FAQ

Q: SerialVersionUID 的作用

A: serialVersionUID适用于Java的序列化机制。简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常,即是InvalidCastException。

具体的序列化过程是这样的:序列化操作的时候系统会把当前类的serialVersionUID写入到序列化文件中,当反序列化时系统会去检测文件中的serialVersionUID,判断它是否与当前类的serialVersionUID一致,如果一致就说明序列化类的版本与当前类版本是一样的,可以反序列化成功,否则失败。

Q: 什么时候后调用类的拷贝构造函数

A: 1.作为函数的入参. 2. 作为函数的返回 3. 用来给其它函数初始化

Q: Object里的wait(), notify(), notifyAll()分别做什么用?

A: wait()用来等待一个对象进行释放; notify()用来唤醒一个等待此对象的线程; notifyAll()通知所有进程, 至于唤醒哪一个看操作系统如何实现的.

KAMI
KAMI
数据挖掘研究员,专注分享数据领域的技术和业务,以及逻辑、思维和方法论

发表回复

文章结构
相关文章