复习序列化之Serializable和Parcelable

本文深入解析了Java中的Serializable接口和Android特有的Parcelable接口,探讨了它们在序列化对象方面的应用及优劣对比。Serializable适用于Java环境,实现简单但效率较低;Parcelable专为Android设计,虽实现复杂,但在内存序列化上表现出色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. Serializable 是什么?

  2. Parcelable 是什么?

    Serializable简介:
    Serializable 是Java所提供的一个序列化接口,它是一个空接口,为对象提供明确的序列化和反序列化操作。

    import java.io.Serializable;
    
    public class User implements Serializable{
    
     private static final long serialVersionUID = -6012308063121737591L;
     private int userId;
     private int userName;
    
     public int getUserId() {
         return userId;
     }
    
     public void setUserId(int userId) {
         this.userId = userId;
     }
    
     public int getUserName() {
         return userName;
     }
    
     public void setUserName(int userName) {
         this.userName = userName;
     }
    

    }
    Parcelable 简介:
    Parcelable也是一个接口,只要实现这个接口,一个类的对象就可以实现序列化并可以通过Intent和Binder传递。

    import android.os.Parcel;
    import android.os.Parcelable;
    
    public class Fruit implements Parcelable {
    
     private String apple;
     private String banner;
    
     protected Fruit(Parcel in) {
         apple = in.readString();
         banner = in.readString();
     }
    
     public static final Creator<Fruit> CREATOR = new Creator<Fruit>() {
         @Override
         public Fruit createFromParcel(Parcel in) {
             return new Fruit(in);
         }
    
         @Override
         public Fruit[] newArray(int size) {
             return new Fruit[size];
         }
     };
    
     @Override
     public int describeContents() {
         return 0;
     }
    
     @Override
     public void writeToParcel(Parcel dest, int flags) {
         dest.writeString(apple);
         dest.writeString(banner);
     }
    }     
    

    总结优缺点: Serializable是java中的序列化接口,但使用起来简单但是开销很大,序列化和反序列化过程需要大量I/O操作。而Parcelable是Aandroid中的序列化方式,主要用在内存序列化上 ,因此更适合Android平台,它的缺点就是使用稍微麻烦,但是效率很高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值