zoukankan      html  css  js  c++  java
  • 类接口java序列化作用以及 serialVersionUID

    改章节个人在广东游玩的时候突然想到的...近期就有想写几篇关于类接口的笔记,所以回家到之后就奋笔疾书的写出来发表了

    在网络输传中,我们为了使接收方失掉的数据没有变改,需要将数据列序化,java中供提了Serializable接口,我们可以便方的用使。
    但在我们现实Serializable接口时,eclispe会提示我们上面的话:
    The serializable class XXX does not declare a static final serialVersionUID field of type long 
        每日一道理
    聪明人学习,像搏击长空的雄鹰,仰视一望无际的大地;愚笨的人学习,漫无目的,犹如乱飞乱撞的无头飞蛾;刻苦的人学习,像弯弯的河流,虽有曲折,但终会流入大海;懒惰的人学习,像水中的木头,阻力越大倒退得越快。
    serialVersionUID作用: 
    列序化时为了坚持版本的兼容性,即在版本升级时反列序化仍坚持对象的唯一性。 
    
    你可以便随写一个,在Eclipse中它替你成生一个,有两种成生式方: 
    一个是默许的1L,比如:private static final long serialVersionUID = 1L; 
    一个是根据类名、接口名、成员方法及属性等来成生一个64位的哈希字段,比如:private static final long serialVersionUID = -8940196742313994740L;之类的。 
    
    当你一个类现实了Serializable接口,如果没有定义serialVersionUID,Eclipse会供提这个提示能功告知你去定义之。 
    在Eclipse中点击类中warning的标图一下,Eclipse就会动自给定两种成生的式方,如上面所述。如果不想定义它,在Eclipse的设置中也可以把它关掉的,设置如下: 
    Window ==> Preferences ==> Java ==> Compiler ==> Error/Warnings ==> Potential programming problems 
    将Serializable class without serialVersionUID的warning改成ignore便可。 
    
    如果你没有考虑到兼容性问题时,就把它关掉,不过有这个能功是好的,只要任何类别现实了Serializable这个接口的话,如果没有参加serialVersionUID,Eclipse会都给你warning提示,这个serialVersionUID为了让该类别Serializable向后兼容。 
    
    如果你的类Serialized存到盘硬上面后,可是后来你却更改了类别的field(增长或增长或名改),当你Deserialize时,就会现出Exception的,这样就会形成不兼容性的问题。 
    
    但当serialVersionUID相同时,它就会将不一样的field以type的预设值Deserialize,这个可以避开不兼容性的问题。

    文章结束给大家分享下程序员的一些笑话语录: 人工智能今天的发展水平:8乘8的国际象棋盘其实是一个体现思维与创意的强大媒介。象棋里蕴含了天文数字般的变化。卡斯帕罗夫指出,国际象棋的合法棋步共有1040。在棋局里每算度八步棋,里面蕴含的变化就已经超过银河系里的繁星总数。而地球上很少有任何数量达到这个级别。在金融危机之前,全世界的财富总和大约是1014人民币,而地球人口只有1010。棋盘上,所有可能的棋局总数达到10120,这超过了宇宙里所有原子的总数!经典语录网

  • 相关阅读:
    flock对文件锁定读写操作的问题 简单
    hdu 2899 Strange Fuction(二分)
    hdu 2199 Can you solve this equation? (二分)
    poj 3080 Blue Jeans (KMP)
    poj 2823 Sliding Window (单调队列)
    poj 2001 Shortest Prefixes (trie)
    poj 2503 Babelfish (trie)
    poj 1936 All in All
    hdu 3507 Print Article (DP, Monotone Queue)
    fzu 1894 志愿者选拔 (单调队列)
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3037451.html
Copyright © 2011-2022 走看看