`
aawty
  • 浏览: 30989 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

谈序列化和transient类型

阅读更多
什么是序列化:很多时候数据要放在网络上传输,或者存到数据库中,这时候要将这些数据变

成二进制数字节数组,通过保存或转移这些字节数据达到持久化。准确来说就是将对象变成二

进制输出流的过程就是序列化。相应的将将二进制流变成对象的过程就是反序列化的过程,这

时候根据序列化ID来查看是否是对应的实体类。

什么是序列化ID?序列化ID有两种:1.默认的:1L;2.自动生成的:是根据接口名、类名、

方法和属性生成的64位的哈希字段。

序列化的情况:1.父类继承Serializable接口,所有子类都可以被序列化。

    2.子类实现了Serialiazable接口,父类没有,父类属性不能序列化,子类可以。

    3.如果序列化的属性是对象,这个对象也必须实现Serializable接口,否则报错。

    4.反序列化的时候,属性有修改或删减的会丢失,但不报错。

    5.反序列化时SerialVersionuid被修改,反序列化失败。

transient:对于特殊的数据成员,在序列化的时候想保存它,就可以transient。

当对象在序列化的时候,transient类型的数据就不包含在序列化的表示中,非transient

包含在序列化表示中。
分享到:
评论

相关推荐

    什么是Java的序列化和反序列化?如何实现对象的序列化和反序列化?(java面试题附答案).txt

    Person 类有两个属性:name 和 age,其中 age 属性被标记为 transient,表示不参与序列化。我们创建了一个 Person 对象,并将其序列化到文件 person.ser 中。然后,我们从文件中反序列化对象,并打印反序列化后的...

    深入理解Java虚拟机-Java内存区域透彻分析(序列化、反序列化概念及其使用场景+实现序列化的方式+transient关键字)

    深入理解Java虚拟机-Java内存区域透彻分析(序列化、反序列化概念及其使用场景+实现序列化的方式+transient关键字)

    Java transient关键字与序列化操作实例详解

    主要介绍了Java transient关键字与序列化操作,结合实例形式详细分析了java序列化操作相关实现方法与操作注意事项,需要的朋友可以参考下

    深入分析Java的序列化与反序列化

    序列化是一种对象持久化的手段。普遍应用在网络传输、RMI等场景中。本文通过分析ArrayList的序列化来介绍Java序列化的相关内容。主要涉及到以下几个问题:  怎么实现Java的序列化  为什么实现了java.io....

    java 对象默认序列化的干预方法

    4.1:将某个成员变量字段加transient(可跳过的),序列化的时候该字段... //另外Integer类型的成员变量也是序列化时不考虑的信息 25. //也就是敏感字段 3. private Gender gender = null; ... 4.}  26. publ

    深入探索Java对象的序列化

    深入探索Java对象的序列化 对象序列化就是把对象写入到输出流中,用来存储或者传输。...实现了序列化接口的类,如果其成员不需要序列化进去,则使用transient关键字进行修饰。 下面给出个例子:

    Java关键字—-transient

    本篇文章序列化、反序列化用的类是同一个类,可以通过注释main中1然后修改Stu类实现有无transient关键字修饰、serialVersionUID是否不同,得到以下结果: 1、serialVersionUID的数值大小不会影响序列化后的字节数...

    Java 序列化的高级认识1

    Transient 关键字的作用是控制变量的序列化,在变量声明前加上该关键字,可以阻止该变量被序列化到文件中,在被反序列化后,transient 变量的值被设为

    Java transient关键字使用小记

    这个对象可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。  然而在实际开发过程中,...

    J2SE中的序默认序列化

    要保存的也被保存了下来。一般情况下,我们仅仅需要保存逻辑... } 则company_flag字段将不会参与序列化与反序列化,但同时你也增加了为他初始值的责任。这也是序列化常常导致的问题之一。因为序列化相当于一个只接受数

    举例浅谈Java关键词transient的使用

    控制序列化IO的类 import java.io.*; public class PersonMapper { private PersonMapper() {} private static PersonMapper mapper; /** * 获取单例 * @return 单例 */ public static PersonMapper ...

    队列分享-易群1

    // 条件队列的第一个节点// 不要管这里的关键字 transient,是不参与序列化的意思private transient Node firstWaiter

    leetcode题库-java-interview:Java研发基础相关

    序列化与反序列化 transient 枚举 注解 JDK7新特性 JDK8新特性 JDK9新特性 JDK10新特性 运行时数据区 对象 OOM & SOF 内存模型 垃圾回收算法 垃圾收集器 内存分配与回收策略 类加载 参数优化 进程与线程的区别 进程...

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    【基础】Java序列化与反序列化 27 为什么需要序列化与反序列化 28 如何实现Java序列化与反序列化 28 【基础】String s = new String("xyz");创建了几个字符串对象 30 【基础】接口是否可继承(extends)接口?抽象类...

    java8集合源码-Java:Java

    Java中序列化和反序列化的区别。 什么是SerialVersionUID? 内部类和子类的区别。 JSON 相对于 XML 的优势是什么? 我们可以两次导入相同的包/类吗? JVM 会在运行时加载包两次吗? 静态加载和动态类加载的区别? ...

    TransDNS Project:Transient DNS Project + Stellar Cartographic + Route Translation Peers-开源

    瞬态 DNS 项目是一个公共项目,用于开发和维护公共可行的 DNS 系统,最初在端口 53 上发现的 DNS 系统仅用于临时部署,但最终部署在跨网之外的其他网络中,这将包括:通过命名约定和序列化以及路由翻译代理 + 网络...

    java8集合源码分析-Outline:大纲

    反序列化(, , , ) interface 和 abstract class 区别 变长参数( ) 枚举详解(, , , , ) Null详解() Java 8 默认方法() 集合类(底层实现原理,实现类的优缺点) List ArrayList(, ) LinkedList(, ) Map(,) Hashtable() ...

    sofa-hessian-node:由Ant Financial支持的性能增强版Hessian

    蚂蚁金服对 Hessian 序列化的定制版本 sofa-hessian-node 对应的 Java Hessian 版本是 v3.1.3。它对 模块做了进一步封装,通过预编译来提高性能。 安装 $ npm install sofa-hessian-node --save 示例 'use strict'; ...

    java面试题

    65. 什么是java序列化,如何实现java序列化? 48 65.1. java序列化、反序列化 48 65.2. 对象的序列化主要有两种用途: 48 65.3. 对象序列化包括如下步骤: 49 65.4. 对象反序列化的步骤如下: 49 66. 反射机制 49 ...

Global site tag (gtag.js) - Google Analytics