为什么要implement Serializable

一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才是可序列化的。因此如果要序列化某些类的对象,这些类就必须实现Serializable接口。而实际上,Serializable是一个空接口,没有什么具体内容,它的目的只是简单的标识一个类的对象可以被序列化。

什么情况下需要序列化:

  1. 当你想把的内存中的对象写入到硬盘的时候。
    
  2. 当你想用套接字在网络上传送对象的时候。
    
  3. 当你想通过RMI传输对象的时候。
    

再稍微解释一下:

  1. 比如说你的内存不够用了,那计算机就要将内存里面的一部分对象暂时的保存到硬盘中,等到要用的时候再读入到内存中,硬盘的那部分存储空间就是所谓的虚拟内存。在比如过你要将某个特定的对象保存到文件中,我隔几天在把它拿出来用,那么这时候就要实现Serializable接口。
  2. 在进行Java的Socket编程的时候,你有时候可能要传输某一类的对象,那么也就要实现Serializable接口。最常见的你传输一个字符串,它是JDK里面的类,也实现了Serializable接口,这样做为的是将数据变为二进制来传输,所以可以在网络上传输。
  3. 如果要通过远程的方法调用(RMI)去调用一个远程对象的方法,如在计算机A中调用另一台计算机B的对象的方法,那么你需要通过JNDI服务获取计算机B目标对象的引用,将对象从B传送到A,就需要实现序列化接口

serialVersionUID?

serialVersionUID用作Serializable类中的版本控件。如果您没有显式声明serialVersionUID,JVM将根据您的Serializable类的各个方面自动为您执行此操作,如Java(TM)对象序列化规范中所述。

什么时候应该更新你的serialVersionUID?
如果使用对可序列化类的某些不兼容的Java类型更改更新序列化类,则必须更新serialVersionUID。
尽量不要随便更新这个id

怎么生成这个id
idea中 setting> editor>inspection 搜素UID 如图勾选 apply
这样在类implements Serializable的时候就会有个warning 然后你操作一下 他就会帮你生成了

为什么implement Serializable 以及如何使用idea自动生成serialVersionUID相关推荐

  1. IDEA 自动生成 serialVersionUID

    问题描述 IDEA 在实体类实现 Serializable 接口时,没有提供生成 serialVersionUID 的方法,但是这个 serialVersionUID 对序列化来说是必须的. 原因分析 ...

  2. 实体类中如何自动生成serialVersionUID

    1. 为什么要实现序列化接口Serializable? 答:实现序列化接口Serializable的目的是为了类可持久化,Java中的序列化机制能够将一个实例对象信息写入到一个字节流中(只序列化对象的 ...

  3. IDEA使用笔记(八)——自动生成 serialVersionUID 的设置

    Ihttps://www.cnblogs.com/godtrue/p/7674487.html https://www.cnblogs.com/godtrue/p/7674487.html DEA使用 ...

  4. IDEA 2021 自动生成serialVersionUID

    发现网上给的教程有些过时,并不符合2021版IDEA的设置.所以自动生成serialVersionUID这个问题困扰了我很久,之前都是复制写好的类的UID然后随便加几个数字,编译器提醒帮助你重新设置U ...

  5. Intellij idea 自动生成serialVersionUID

    1 什么是UID 网络间的数据传输最终都是要转化为二进制流的方式进行传输,为了方便转换以及进行验证,我们应该把对角序列化,当实现Seriabizable接口时,UID就是一个必须的属性,可以方便进行版 ...

  6. idea中设置自动生成serialVersionUID

    默认情况下Intellij IDEA不会提示继承了Serializable接口的类生成serialVersionUID的警告.如果需要生成serialVersionUID,就要在Preferences ...

  7. Android Studio类中实现Serializable自动生成serialVersionUID

    1.File -> Settings... -> Editor -> Inspections -> Serialization issues -> Serializabl ...

  8. MAC + IDEA自动生成SerialVersionUID(亲测有效)

    在日常开发中,我们使用MAC + IDEA想要生成一个SerialVersionUID,竟然还找不到合适的快捷键.不是没有,是我们没有找到. 首先写一个类,实现了Serializable接口 开启ID ...

  9. Intellij IDEA 2019 自动生成 serialVersionUID

    idea2019位置:Setting->Editor->Inspections->Java->Serialization issues->Serializable cla ...

最新文章

  1. 在Windows/Ubuntu上使用Visual Studio Code作为Go语言编辑器操作步骤
  2. andengine的convertLocalCoordinatesToSceneCoordinates方法
  3. RDD基本转换操作:zipWithIndex、zipWithUniqueId
  4. rest spring_Spring REST:异常处理卷。 2
  5. python示例_Python中的缩进示例
  6. 中国移动订330万台Redmi K40系列 网友:怪不得抢不到
  7. matlab中对正弦信号采样,正弦信号抽样的实验报告(共9篇).doc
  8. 我,27岁,程序员,今年无情被辞:该转行还是降薪和年轻人抢饭碗?
  9. Dynamics AX2012 标准权限控制工作原理
  10. MATLAB2021下载安装图文教程
  11. systemd 编写微信鱼虾蟹棋牌搭建服务管理脚本
  12. clientX,clientY,screenX,screenY,offsetX,offsetY 区别测试
  13. python 矩阵拼接_Numpy基础4 矩阵取整 拉平 拼接 切分 复制等函数操作
  14. 使用Flow forecast进行时间序列预测和分类的迁移学习介绍
  15. 用C#去读取陀螺仪姿态角度传感器JY61的串口数据
  16. JAVA中String、StringBuffer和StringBuider类
  17. 逐字稿整理-中/TED演讲:如何训练思维,突破局限?(大花猫冯夏)
  18. SQL注入AccessMysql
  19. python-App自动化测试框架——uiautomator2之元素操作方法(三)
  20. i711800h和r54600h哪个好

热门文章

  1. 1980-不存在的泳池 ZCMU
  2. 湖大计算机考研改成408,2018湖大计算机考研专硕回顾
  3. 中文流行歌曲歌词文本挖掘
  4. 揭露抖音详情发家史,对其中内容有何看法
  5. 基于CSDN上海城市开发者社区第一次线下沙龙的筹备经验分享
  6. 字符串拼接onclick函数
  7. BGP概述及基础配置
  8. 2022天梯赛 L1-081 今天我要赢
  9. 目标美日德--2018汽车零部件产业国产化概况
  10. 《Python 深度学习》-弗朗索瓦 肖莱-(一)双系统ubuntu及TensorFlow系统安装