`

【翻译】Serialization / Marshalling / Deflating in JAVA

阅读更多
原文地址: http://www.dzone.com/links/r/serialization_marshalling_deflating_in_java.html

Writing Java Objects or keeping the state of Objects into DataBase or Files (In Binary Format) is known as Serialization or Marshalling or deflating.
Reading Java Objects back in Binary Format from file or Database is known as DeSerialization or UnMarshalling or inflating.



Transient : If any variable is defined by using keyword “transient”, then object will not serialize that variable. During deserialization default value of that datatype will be set.
Static : as static variables are class level variables, so it is not serialzed as the object state.

Example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
	
package com.G2.Serialization;
 
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
 
class Home implements Serializable
{
     transient int flatNo;
     String OwnerName;
}
 
class Door extends Home
{
    private boolean isDoubleLock;
    private String DoorMaterial;
    public void setValue(boolean isDLock,String dMaterial, int fNo,String Owner)
    {
        isDoubleLock = isDLock;
        DoorMaterial = dMaterial;
        flatNo = fNo;
        OwnerName = Owner;
    }
    public void Display()
    {
        System.out.println("Double Lock - "+isDoubleLock);
        System.out.println("Material - "+DoorMaterial);
        System.out.println("flat No - "+flatNo);
        System.out.println("Owner Name - "+OwnerName);
    }
}
 
public class SerializationDemo {
    public static void main(String[] args) throws FileNotFoundException, IOException,
ClassNotFoundException {
        ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("Demo.srl"));
 
        Door d = new Door();
        d.setValue(true, "Wood", 24, "Minal Zaa");
        System.out.println(" *** Serializing Object *** ");
        out.writeObject(d);
 
        out.close();
 
        ObjectInputStream in = new ObjectInputStream(new FileInputStream("Demo.srl"));
        System.out.println(" *** DeSerializing Object *** ");
        Door d1 = (Door) in.readObject();
        d1.Display();
 
        in.close();
 
    }
}


Output:

    *** Serializing Object ***

    *** DeSerializing Object ***
    Double Lock – true
    Material – Wood
    flat No – 0
    Owner Name – Minal Zaa

Note from example:
Parent class implements interface “Serializable” and child class extends that, so child class automatically gets serialized.
Variable “flatNo” is transient and therefore it is not serialized.
分享到:
评论

相关推荐

    as3corelib.swc及解析json的例子

    在本文中,我们将深入...通常我们会用到`com.adobe.serialization.json.JSON`类。 接下来,让我们看一个使用as3corelib解析JSON的实例。假设我们有一个名为`TT.mxml`的MXML文件,它将获取并解析JSON数据: ```mxml ...

    schemas.microsoft.com.2003.10.Serialization.xsd

    这个文档是用svcutil.exe生成的元数据 是对于本人WCF文章中的源码下载

    sirenix.serialization.dll

    sirenix.serialization.dll

    java Streams and Serialization 详解

    ### Java Streams 和 Serialization 详解 在Java编程语言中,数据的读取与写入操作是通过流(Streams)实现的。此外,为了保存对象的状态,Java提供了序列化(Serialization)机制。本文将深入探讨Java中的流操作...

    《Programming in Java Second Edition》高清完整英文PDF版

    The second edition of Programming in Java confirms to Java Standard Edition 7, the latest release since Oracle took over Sun Microsystems. It is significant in the sense that the last update was six ...

    java串行化详细的介绍了java串行化的概念

    - [Java序列化规范](http://java.sun.com/j2se/1.4.1/docs/guide/serialization/spec/serialTOC.doc.html) - [版本控制文档](http://java.sun.com/j2se/1.4.1/docs/guide/serialization/spec/version.doc7.html) ...

    kotlinx-serialization-compiler-plugin.jar

    kotlinx-serialization-compiler-plugin.jar

    System.Runtime.Serialization.dll / ServiceModel.dll/ServiceModel.Web.dll

    在.NET框架中,`System.Runtime.Serialization.dll`, `ServiceModel.dll` 和 `ServiceModel.Web.dll` 这三个动态链接库(DLL)是实现数据序列化和网络服务操作的关键组件。它们在开发过程中扮演着重要角色,特别是在...

    java7帮助文档

    see Appendix D: Disabling Cryptographic Algorithms in Java PKI Programmer's Guide and Disabled Cryptographic Algorithms in Java Secure Socket Extension (JSSE) Reference Guide. Various enhancements ...

    kotlinx.serialization,Kotlin跨平台/多格式序列化.zip

    【Kotlinx.Serialization详解】 Kotlinx.Serialization是一个强大的开源库,专门为Kotlin编程语言提供了跨平台的序列化解决方案。这个库允许开发者将数据对象转换成字节流或JSON等不同格式,反之亦然,这对于数据...

    Java序列化(Serialization) 机制

    Java序列化机制是Java平台提供的一种标准方法,用于将对象的状态转换为字节流,以便存储在磁盘上,或者在网络中进行传输。这使得Java对象可以在不同的Java虚拟机(JVM)之间交换,这对于分布式应用程序,如远程方法...

    febird C++ 库(附带所有源码)

    febird implemented a serialization framework(vs boost.serialization/google.protocolbuffer), can be used in protocol parsing, big/small data serialization, even in very small object serialize, ...

    kafka-clients-3.0.0.jar

    pyspark充当Kafka消费者时报错:py4j.protocol.Py4JJavaError: An error occurred while calling o29....: java.lang.NoClassDefFoundError: org/apache/kafka/common/serialization/ByteArraySerializer 所缺少的jar包

    System.Runtime.Serialization.DLL.zip

    《深入理解System.Runtime.Serialization.DLL及其在.NET框架中的作用》 在.NET框架中,`System.Runtime.Serialization`命名空间是处理序列化和反序列化的核心组件,而`System.Runtime.Serialization.dll`则是这个...

    Android代码-XTML

    GSON analog for serialization/deserialization of Java objects into HTML code and back Work in progress, a basic data is supported so far. For the sample see TestClass.java Contribution is welcome! ...

    \\(^_^)/ Java io 结构

    4. **对象序列化(Object Serialization)**: 序列化允许将Java对象转换为字节流,以便存储或在网络上传输。ObjectOutputStream和ObjectInputStream负责对象的序列化和反序列化。 5. **文件操作(File Operations)**: ...

    Experiences Implementing Efficient Java Thread Serialization

    ### 实现高效Java线程序列化、移动性和持久性的经验 #### 概述 随着分布式计算的发展,移动性与持久性成为了重要的组成部分。这些特性在负载均衡、容错以及应用程序的动态重构等领域有着广泛的应用场景。Java作为...

    Java IO, NIO and NIO.2 原版pdf by Friesen

    Chapter 1 presents a broad overview of I/O in terms of Java’s classic I/O, New I/O (NIO), and NIO.2 categories. You learn what each category offers in terms of its capabilities, and you also learn ...

    Faster Java Serialization-开源

    "Faster Java Serialization"项目正是为了解决这个问题而诞生的,它通过采用开源的方式,提供了比默认Java序列化更快的实现。这个项目的核心在于运行时生成定制的序列化代码,以优化序列化和反序列化过程。这种做法...

    Java 9 for Programmers (Deitel Developer Series) 完整高清azw3版

    level language, this book applies the Deitel signature live-code approach to teaching programming and explores the Java® 9 language and APIs in depth. The book presents concepts in fully tested ...

Global site tag (gtag.js) - Google Analytics