博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Android】Android中Serializable接口的定义和使用
阅读量:6617 次
发布时间:2019-06-25

本文共 1708 字,大约阅读时间需要 5 分钟。

1、序列化是干什么的?

       简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。

2、什么情况下需要序列化   
    a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;
    b)当你想用套接字在网络上传送对象的时候;
    c)当你想通过RMI传输对象的时候;

3、Parcelable和Serializable的区别:

内存间数据传输时推荐使用Parcelable,如

保存到本地或者网络传输时推荐使用Serializable

 

serialVersionUID 用来表明类的不同版本间的兼容性。

有两种生成方式: 一个是默认的1L;另一种是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段 。

java类中为什么需要重载 serialVersionUID 属性。 

当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。 把Java对象转换为字节序列的过程称为对象的序列化,把字节序列恢复为Java对象的过程称为对象的反序列化。 

========================================

SerializableDemo:MainActivity.java通过Serializable接口保存数据并跳转到FirstActivity.java,在FirstActivity.java中读取数据。

Person类

package com.example.serializetest;import java.io.Serializable;public class Person implements Serializable{        private static final long serialVersionUID = 1L;    // 成员变量    private int id;    private String name;        public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }   }

MainActivity.java

// 封装数据        Person p = new Person();        p.setId(320840);        p.setName("小伙子");        Intent i = new Intent(MainActivity.this, FirstActivity.class);        i.putExtra("Person", p);        startActivity(i);

FirstActivity.java

  Person p = (Person)getIntent().getSerializableExtra("Person");              System.out.println("身份证"+p.getId());       System.out.println("姓名"+p.getName());

 下载地址:

  其他例子:

  传递List<Object>传递List<Object>的方法:

转载于:https://www.cnblogs.com/xubuhang/p/4500479.html

你可能感兴趣的文章
R语言 关联规则
查看>>
性能优化工具---iostat
查看>>
c++学习之路:函数重载
查看>>
TS和C#的差异
查看>>
$noip2018$游记+考后总结
查看>>
CSS选择器
查看>>
线程、进程 概念理解
查看>>
jquery 数字转大写金额
查看>>
剑指offer:两个链表的第一个公共结点
查看>>
Winform中的TextBox的小技巧
查看>>
20165302课下作业补做
查看>>
Hadoop权威指南获取NCDC的气温数据
查看>>
python装饰器
查看>>
英语文化研究
查看>>
Web前端学习第十六天·fighting_JavaScript(DOM编程艺术5-6章)
查看>>
对文件内容进行迭代
查看>>
如何用python的装饰器定义一个像C++一样的强类型函数
查看>>
Eclipse_luna_J2EE_For_JS+tomcat8.0环境搭建、配置、开发入门
查看>>
swiper插件的一些坑
查看>>
六种排序
查看>>