收藏此站 联系我们 网站
当前位置:首页» 行业新闻 » 【建站服务】泽州公众号代运营公司-域名申请

【建站服务】泽州公众号代运营公司-域名申请

作者: 风兰 . 阅读量: 4 . 发表时间:2022-09-21 05:27:27

网站建设

上往建站提供服务器空间服务商百度快照排名网站托管百度推广运营,致力于设计外包服务与源代码定制开发360推广搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


泽州公众号代运营公司

网站建设.png

  1. erializable 的作用

    为什么一个类实现了Serializable接口,它就可以被序列化呢?在上节的示例中,使用ObjectOutputStream来持久化对象,在该类中有如下代码:

    private void writeObject0(Object obj, boolean unshared) throws IOException {
          ...
        if (obj instanceof String) { 
            writeString((String) obj, unshared);
        } else if (cl.isArray()) { 
            writeArray(obj, desc, unshared);
        } else if (obj instanceof Enum) {
            writeEnum((Enum) obj, desc, unshared);
        } else if (obj instanceof Serializable) {
            writeOrdinaryObject(obj, desc, unshared);
        } else {
            if (extendedDebugInfo) {
                throw new NotSerializableException(cl.getName() + "
    "
                        + debugInfoStack.toString());
            } else {
                throw new NotSerializableException(cl.getName());
            }
        }
        ...}

    从上述代码可知,如果被写对象的类型是String,或数组,或Enum,或Serializable,那么就可以对该对象进行序列化,否则将抛出NotSerializableException。

    小怪物

       小怪物

      193***8411@qq.com

    5年前 (2018-02-08)
  2.    hunter

      hun***es@126.com

    22

    关于 java 中的序列化与反序列化

    关于序列化,常又称为持久化,将其写入磁盘中。

    进而对于编码规则来说:

    任一一个实体类必须要去实现 Serializable 接口,方便以后将该类持久化,或者将其用于转为字节数组,用于网络传输。

    对于一个实体类,不想将所有的属性都进行序列化,有专门的关键字 transient:

    private transient String name;

    当对该类序列化时,会自动忽略被 transient 修饰的属性。

    hunter

       hunter

      hun***es@126.com

    4年前 (2018-03-25)
  3.    krion

      a92***5081@qq.com

       参考地址

    15

    关于 SerializableID

    SerializableID 号是根据类的特征和类的签名算出来的。为什么 ID 号那么长,是因为为了避免重复。所以 Serializable 是给类加上 id 用的。用于判断类和对象是否是同一个版本。

    如果可序列化类未显式声明 serialVersionUID,则序列化运行时将基于该类的各个方面计算该类的默认 serialVersionUID 值。原因是计算默认的 serialVersionUID 对类的详细信息具有较高的敏感性,根据编译器实现的不同可能千差万别,这样在反序列化过程中可能会导致意外的 InvalidClassException。

    krion

       krion

      a92***5081@qq.com

       参考地址

    4年前 (2019-01-12)
  4.    ByVie

      635***000@qq.com

    52

    序列化流与反序列化流

    ObjectOutputStream(序列化流)

    ObjectOutputStream是序列化流,可以将Java程序中的对象写到文件中。

    ObjectOutputStream 构造方法:

    ObjectOutputStream(OutputStream out):参数要传递字节输出流。

    ObjectOutputStream写对象的方法(特有方法):

    void writeObject(Object obj): 向文件中写对象。

    ObjectOutputStream 的使用步骤:

    tips: 要使用序列化流向文件中写的对象,必须实现 Serializable 接口。

    public class Demo01ObjectOutputStream {
        public static void main(String[] args) throws IOException {
            //1. 创建序列化流,用来写
            ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("day12ile03-obj.txt"));
            //2. 调用writeObject方法,写对象
            Person p = new Person("张三丰", 100);
            oos.writeObject(p);
            //3. 释放资源。
            oos.close();
        }}

    ObjectInputStream(反序列化流)

    ObjectInputStream 是反序列化流, 可以将文件中的对象读取到 Java 程序中。

    ObjectInputStream 的构造方法:

    ObjectInputStream(InputStream in):参数要传递字节输入流。

    ObjectInputStream 读取对象的方法(特有的方法):

    Object readObject(): 从文件

    •  创建序列化流,用来写。

    •  调用 writeObject 方法,写对象。

    •  释放资源。


bjectInputStream(反序列化流)

ObjectInputStream 是反序列化流, 可以将文件中的对象读取到 Java 程序中。


ObjectInputStream 的构造方法:


ObjectInputStream(InputStream in):参数要传递字节输入流。


ObjectInputStream 读取对象的方法(特有的方法):


Object readObject(): 从文件中读取对象,并将该对象返回。


反序列化流的使用步骤:


 创建 ObjectInputStream 反序列化流。

 调用 readObject 方法,读取对象。

 释放资源。

tips:调用 readObject 方法读取对象时,对象所对应的类不存在,那么会报错(ClassNotFoundException)


特殊情况:


被 static 修饰的成员变量无法序列化,无法写到文件。


如果不希望某个成员变量写到文件,同时又不希望使用 static 关键字, 那么可以使用 transient。transient 关键字表示瞬态,被 transient 修饰的成员变量无法被序列化。


public class Demo03StaticAndTransient {

    public static void main(String[] args) throws IOException, ClassNotFoundException {

        writePerson();

        readPerson();

    }


    //从文件中读取Person对象

    public static void readPerson() throws IOException, ClassNotFoundException {

        //创建反序列化流

        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("day12 ile04-obj.txt"));

        //从文件中读取对象

        Object obj = ois.readObject();

        System.out.println(obj);

        //释放资源

        ois.close();

    }


    //向文件中写Person对象

    public static void writePerson() throws IOException {

        //创建序列化流

        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("day12 ile04-obj.txt"));

        //向文件中写Person对象

        oos.writeObject(new Person("张三丰", 100));

        //关流

        oos.close();

    }

}

public class Demo04SerialVersionUID {

    public static void main(String[] args) throws IOException, ClassNotFoundException {

        //writePerson();

        readPerson();

    }


    //从文件中读取Person对象

    public static void readPerson() throws IOException, ClassNotFoundException {

        //创建反序列化流

        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("day12 ile04-obj.txt"));

        //从文件中读取对象

        Object obj = ois.readObject();

        System.out.println(obj);

        //释放资源

        ois.close();

    }


    //向文件中写Person对象

    public static void writePerson() throws IOException {

        //创建序列化流

        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("day12 ile04-obj.txt"));

        //向文件中写Person对象

        oos.writeObject(new Person("张三丰", 100));

        //关流

        oos.close();

    }

}

例题


/*

    练习:

        1. 将存有多个Student对象的集合序列化操作,保存到list.txt 文件中。

        2. 反序列化list.txt ,并遍历集合,打印对象信息。


    步骤:

        1. 创建集合,用


泽州公众号代运营公司


上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站

全国服务热线
18114747181
二维码
手机端二维码
上往建站
地址:全国各地都有驻点商务 |  网站建设上往建站
在线咨询QQ:1120768800
 
QQ在线咨询
售前咨询热线
18114747181
营销顾问
营销顾问
售后服务热线
400-000-1116
售后服务
售后服务