资讯专栏INFORMATION COLUMN

序列化04_transient关键字_瞬态关键字,InvalidClassException异常_原

sevi_stuo / 3276人阅读

package com.itheima.demo04.ObjectStream;

import java.io.Serializable;

/*

序列化和反序列化的时候,会抛出NotSerializableException没有序列化异常
类通过实现 java.io.Serializable 接口以启用其序列化功能。未实现此接口的类将无法使其任何状态序列化或反序列化。
Serializable接口也叫标记型接口
    要进行序列化和反序列化的类必须实现Serializable接口,就会给类添加一个标记
    当我们进行序列化和反序列化的时候,就会检测类上是否有这个标记
        有:就可以序列化和反序列化
        没有:就会抛出 NotSerializableException异常
去市场买肉-->肉上有一个蓝色章(检测合格)-->放心购买-->买回来怎么吃随意


static关键字:静态关键字
    静态优先于非静态加载到内存中(静态优先于对象进入到内存中)
    被static修饰的成员变量不能被序列化的,序列化的都是对象
    private static int age;
    oos.writeObject(new Person("小美女",18));
    Object o = ois.readObject();
    Person{name="小美女", age=0}

transient关键字:瞬态关键字
    被transient修饰成员变量,不能被序列化
    private transient int age;
    oos.writeObject(new Person("小美女",18));
    Object o = ois.readObject();
    Person{name="小美女", age=0}

*/
public class Person implements Serializable{

private static final long serialVersionUID = 1L;
private String name;
//private static int age;
//private transient int age;
public int age;

public Person() {
}

public Person(String name, int age) {
    this.name = name;
    this.age = age;
}

@Override
public String toString() {
    return "Person{" +
            "name="" + name + """ +
            ", age=" + age +
            "}";
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}

}
序列号冲突的异常

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76270.html

相关文章

  • Java 对象列化

    摘要:对象序列化对象序列化机制允许把内存中的对象转换成与平台无关的二进制流,从而可以保存到磁盘或者进行网络传输,其它程序获得这个二进制流后可以将其恢复成原来的对象。 对象序列化 对象序列化机制允许把内存中的Java对象转换成与平台无关的二进制流,从而可以保存到磁盘或者进行网络传输,其它程序获得这个二进制流后可以将其恢复成原来的Java对象。 序列化机制可以使对象可以脱离程序的运行而对立存在 ...

    tianyu 评论0 收藏0
  • Java IO框架总揽--ObjectInputStream& ObjectOutputSt

    摘要:与的作用是对基本数据和对象进行序列化操作进行支持。如果检测到反序列化的类的和对象二进制流的不同,则会抛出异常。 ObjectInputStream与ObjectOutputStream的作用是:对基本数据和对象进行序列化操作进行支持。其中ObjectInputStream对象提供对基本数据和对象对持久存储,当我们需要读取这些存储这些基本数据或对象时,可以创建文件输入流对应的Object...

    philadelphia 评论0 收藏0
  • Java列化

    摘要:的序列化是将一个对象表示成字节序列,该字节序列包括了对象的数据,有关对象的类型信息和存储在对象中的数据类型。任何实现了接口的类都可以被序列化。一旦对象被序列化或者重新装配,就会分别调用那两个方法。 Java序列化 1. 什么是序列化? 序列化是将一个对象的状态,各属性的值序列化保存起来,然后在合适的时候通过反序列化获得。 Java的序列化是将一个对象表示成字节序列,该字节序列包括了对象...

    lbool 评论0 收藏0
  • 浅谈Java列化

    摘要:的序列化是将一个对象表示成字节序列,该字节序列包括了对象的数据,有关对象的类型信息和存储在对象中的数据类型。这个是根据类名接口名成员方法及属性等来生成一个位的哈希字段,因为增加了字段,因此生成的不一样了。 Java序列化 什么是序列化? 序列化是将一个对象的状态,各属性的值序列化保存起来,然后在合适的时候通过反序列化获得。 Java的序列化是将一个对象表示成字节序列,该字节序列包括了对...

    winterdawn 评论0 收藏0
  • 1、Properties集合 2、列化流与反列化流 3、打印流 4、commons-IO

    摘要:集合的特点集合的特点类介绍类表示了一个持久的属性集。可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串特点的子类,集合中的方法都可以用。该集合没有泛型。键值可以存储到集合中,也可以存储到持久化的设备硬盘盘光盘上。 01Properties集合的特点 * A: Properties集合的特点 * a: Properties类介绍 * Propert...

    aboutU 评论0 收藏0

发表评论

0条评论

sevi_stuo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<