假设这是我的课:
class B implements Serializable {
private static final long serialVersionUID = -5186261241138469827L; // what algo is used to generate this
..........
}
eclipse使用什么算法来生成serialVersionUID = -5186261241138469827L
?
假设这是我的课:
class B implements Serializable {
private static final long serialVersionUID = -5186261241138469827L; // what algo is used to generate this
..........
}
eclipse使用什么算法来生成serialVersionUID = -5186261241138469827L
?
Eclipse 实现了相关的 Java 规范来计算序列化 ID。
在 Eclipse 中,这是通过org.eclipse.jdt.internal.ui.text.correction.SerialVersionHashOperation类中的calculateSerialVersionId方法实现的。
Java对象序列化规范文档,鉴于该算法
哈希值由 SHA-1 消息摘要的第一个和第二个 32 位值组合而成。如果消息摘要的结果,即五个 32 位字 H0 H1 H2 H3 H4,位于名为 sha 的五个 int 值的数组中,则哈希值将按如下方式计算:
long hash = ((sha[0] >>> 24) & 0xFF) |
((sha[0] >>> 16) & 0xFF) << 8 |
((sha[0] >>> 8) & 0xFF) << 16 |
((sha[0] >>> 0) & 0xFF) << 24 |
((sha[1] >>> 24) & 0xFF) << 32 |
((sha[1] >>> 16) & 0xFF) << 40 |
((sha[1] >>> 8) & 0xFF) << 48 |
((sha[1] >>> 0) & 0xFF) << 56;