niusouti.com

下列关于对象串行化的说法不正确的是 ( )A.可以通过ObjectOutputStream类的writeObject()方法将对象写到一个文件中B.可以通过ObjeetInputStream类的readObject()方法将一个文件中的对象读到内存中C.Java中的对象都可以进行串行化D.Java支持对象串行化的定制

题目

下列关于对象串行化的说法不正确的是 ( )

A.可以通过ObjectOutputStream类的writeObject()方法将对象写到一个文件中

B.可以通过ObjeetInputStream类的readObject()方法将一个文件中的对象读到内存中

C.Java中的对象都可以进行串行化

D.Java支持对象串行化的定制


相似考题
更多“下列关于对象串行化的说法不正确的是()A.可以通过ObjectOutputStream类的writeObject()方法将对 ”相关问题
  • 第1题:

    从对象流中读取对象是使用ObjectInputStream类的( )方法。

    A.writeObject ()

    B. readObject )

    C. ObjectOutputStream

    D. DataOutput


    正确答案:B

  • 第2题:

    把一个对象写到一个流中相对比较简单,具体是通过调用ObjectOutputStream类的writeObject()方法实现的,那么该方法的定义为( )。

    A.public final int writeObject(Object obj) throws IOException

    B.public final void writeObject(Object obj) throws IOException

    C.public Object writeObject(Object obj) throws IOException

    D.public final Object writeObject(Object obj) throws IOException


    正确答案:B
    解析:writeObject()方法的正确定义为: public final void writeObject(Object Obj) throws IOException。即B选项的定义是正确的。

  • 第3题:

    下列说法中错误的是( )。

    A.可串行化的类必须实现Serializable接口

    B.可串行化的类中的静态变量可以不被串行化

    C.private数据访问权限能够限制数据不被串行化

    D.对象串行化使用Java语言提供的默认机制


    正确答案:C
    解析:一般的数据访问权限,如public、protected、package或private等,对数据的串行化没有影响,只有static和transient关键字修饰的数据才可以不被串行化。

  • 第4题:

    下列关于对象串行化的说法错误的是

    A.Java中,默认所有类的对象都可串行化

    B.在对象串行化时,不保存对象所属类的构造方法

    C.在实现Serializeble接口的类中,用transient关键字可使某些数据不被串行化

    D.ObjectInputStream和ObjectOutputStream类都支持对象的读和写


    正确答案:A
    解析:Java对象只有在实现Serializable或Extemalizable接口后才可串行化,一些基本类型如String、Integer已实现Serializable接口故可串行化,而没有实现此接口的类型不能串行化。Transient关键字修饰的变量表示其值短暂易变的,在串行化时不作处理,待反串行化时再重新生成。

  • 第5题:

    下列说法中错误的一项是 ( )

    A.实现完全串行化的类必须实现writeExternal()方法

    B.readexternal()方法用于从对象流中读取通过writeExternal()方法写入的对象的数据

    C.实现完全串行化的类必须定义一个具有public访问权限的不带参数的构造方法

    D.writeExternal()方法的访问权限是private


    正确答案:D
    解析:实现完全定制串行化的类要遵守以下原则:(1)必须实现java.io.Externalizable接口;(2)必须实现writeExternal()方法以保存对象的数据或状态。并且该类必须负责把对象的各个超类的数据保存到流中;(3)必须实现readExternal()方法,该方法从对象流中读取通过writeExternal()方法写入的对象的数据,同时还必须恢复父类中的数据;(4)如果对象串行化中使用丁外部定义的格式,则writeExternal()方法和readExternal()方法都必须完全依照该格式;(5)必须定义一个具有public访问权限的不带参数的构造方法。选项A、B和C都是正确的,所以选项D是错误的。

  • 第6题:

    关于定制串行化,下列叙述正确的是______。

    A.定制串行化就是定义自己读取数据流的方式

    B.在需要按照某种顺序和种类将数值写入到文件时,可以使用定制串行化

    C.通过在实现Serializable接口的类中重写write()和readObject()方法,可以控制读取数据流的方式

    D.定制串行化将按照名称的上升排列顺序写入数值


    正确答案:A

  • 第7题:

    下列关于串行化的说法不正确的是

    A.完全串行化必须实现Extemalizable接口

    B.在完全串行化中,必须有一个public访问权限的不带参数的构造方法

    C.完全串行化就是将数据完全封锁在对象中,所以安全性很高

    D.在部分定制串行化中,readObject()方法既实现writeObject()方法所写入的信息,又可以用来在对象被恢复后进行对象数据的更新


    正确答案:C
    解析:完全串行化就是将数据完全封锁在对象中。在Externalizable接口中,writeExtemal()和readExtemal()方法的访问权限是public的,带来的问题是其他用户可能通过这两个方法就可以读、写对象中的数据。由此造成了数据的泄露,因此,只有不需要考虑安全问题时,才用完全串行化。

  • 第8题:

    下列说法中错误的一项是______。

    A.readExtemal()方法用于从对象流读取通过writeExtemal()方法写入的对象的数据

    B.实现完全串行化的类必须实现writeExtemal()方法

    C.实现完全串行化的类必须定义一个具有public访问权限的不带参数的构造方法

    D.writeExtemal()方法的访问权限是private


    正确答案:D

  • 第9题:

    部分定制串行化的方法是( )。

    A.readObject()和defaultReadObject()

    B.defauhWriteObject()和dafauhReadObject()

    C.writeObject()和readObject()

    D.writeObject()和defauhWriteObject()


    正确答案:C
    解析:在对象的串行化中,根据其串行化的彻底性可以分为部分定制串行化和完全定制串行化两种。前者定制输出串行化类本身定义的数据,而后者定制输出串行化类中所有的数据,包括串行化本身和其父类定义的数据。部分串行化的实现依赖于串行化类中定义的两个方法: writeObject()方法和readObject()方法。完全定制串行化的实现依赖于Externalizable接口,该接口可以对对象串行化的过程进行完全、显式的控制,除了对象所属类标识,它将定制输出串行化类所有的数据。

  • 第10题:

    序列化对象使用ObjectOutputStream、ObjectInputStream类,对象所在的类必须实现()接口才可以自动序列化所有的内容。


    正确答案:Serializable

  • 第11题:

    单选题
    关于对象的序列化说法错误的是()。
    A

     实现序列化的对象必须实现Serializable接口

    B

     实现序列化的对象必须自定义序列号

    C

     ObjectOutputStream中的writeObject()方法可以将对象写出

    D

     ObjectInputStream中的readObject()方法可以读取对象


    正确答案: D
    解析: 暂无解析

  • 第12题:

    单选题
    阅读下列代码段:ByteArrayOutputStream bout=new ByteArrayOutputStream();ObjectOutputStream out=new ObjectOutputStream(bout);out.writeObject(this);out.close();以上代码段的作用是(  )。
    A

    将对象写入内存

    B

    将对象写入硬盘

    C

    将对象写入光盘

    D

    将对象写入文件


    正确答案: A
    解析:
    在java.io包中,提供了ByteArrayInputStream、ByteArrayOutputStream和StringBufferInputStream类可直接访问内存,它们是InputStream和OutputStream的子类。用ByteArrayOutputStream可以向字节数组(缓冲区)写入数据。在ObjectInputStream中用readObject()方法可以直接读取一个对象,ObjectOutputStream中用writeObject()方法可以直接将对象保存到输出流中。

  • 第13题:

    下列关于对象的串行化的说法中,错误的是( )。

    A.对象串行化定制分为两个层次:部分串行化和完全串行化

    B.对象永久化是将对象存在内存中

    C.对象串行化是对Java对象的读、写的过程

    D.对象串行化必须实现Serializable接口


    正确答案:B
    解析:将Java程序中的对象保存在外存中,称为对象永久化。对Java对象的读、写的过程被称为对象串行化。一个类只有实现了Serializable接口,它的对象才可串行化。对象串行化定制分两个层次:一个层次是对可串行化类自定义数据的输出进行定制,称为部分定制串行化;另一个层次对串行化类所有数据(包括自定义的及其类的数据)的输出都进行定制,称为完全串行化。

  • 第14题:

    下列关于对象的说法错误的是______。

    A.一个对象就是变量和相关方法的集合

    B.任何事物都是对象,是某一个对象类的一个元素。可将对象普遍具有的特征概括为状态和行为

    C.对象通过成员变量来维持其状态,通过方法实现其行为

    D.一个对象的方法构成这个对象的核心,变量包围着方法,将这个对象和其他对象分离开来


    正确答案:D
    解析:选项A、B和C的说法均正确。一个对象就是变量和相关方法的集合,其中变量表明对象的状态,方法表明对象所具有的行为。对象占有存储空间,给对象分配空间就确定了给定时刻对象的状态,而与每个对象相关的方法定义了该对象上的操作。一个对象的变量构成这个对象的核心,方法包围着变量,将这个对象和其他对象分离开来,即隐藏该对象,使外界不可见。选项D正好相反,故错误。

  • 第15题:

    关于对象串行化,下列叙述正确的是______。

    A.被储存和还原的对象如果引用了其他对象,这些对象不须同时存储和还原

    B.串行化只能保存对象的非静态成员变量

    C.串行化只能保存成员方法和静态的成员变量

    D.串行化保存变量的任何修饰符


    正确答案:B
    解析:对象通过写出描述自己状态的数值来记录自己的过程称为对象的串行化。在被存储和还原的对象引用到其他的对象时,这些对象必须也能被同时存储和还原,以保证对象之间的关系。即如果变量是另一个对象的引用,则引用的对象也要串行化,所以选项A错误。串行化只能保存对象的非静态成员变量,不能保存成员方法和静态的成员变量,而且串行化只保存非静态成员变量的值,不保存变量的任何修饰符,所以选项C和D错误。此外,对于 transient类型的变量,串行化也不保存对应的值。

  • 第16题:

    下列关于串行化说法有误的是

    A.在定义可串行化时,只需要声明implements Serializable子句即可

    B.可串行化类的数据的访问权限(public,protected,package或private),对于数据的串行化会有权限上的影响

    C.对于对象的串行化处理,程序员可以不编写任何方法,使用Java提供的串行化默认机制

    D.如果需要对对象的串行化进行更具体的控制,我们要用到定制串行化的功能


    正确答案:B
    解析:可串行化类的数据的访问权限(public,protected,Package或Private),对于数据的串行化没有影响。数据是以字节形式写入流而字符串型数据将表示UTF格式,即文件系统安全全局字符集转换格式。正如题目中选项C)和选项D)中所描述的一样,对于对象的串行化处理,程序员可以不编写任何方法,使用Java提供的串行化默认机制;对于很多类,默认的串行化处理已经能够满足串行化的需要,但这种默认的串行化比较慢,另外有时可能需要对对象的串行化进行更具体的控制,我们要用到定制串行化的功能。

  • 第17题:

    下面关于串行化的说法中正确的是( )。 Ⅰ:对象串行化机制需要将对象的状态保存到文件中,而后能够通过读入对象状态来重新构造对象,恢复程序状态。 Ⅱ:通过让类实现java.io.Serializable接口可以将类串行化。这个接口是一个制造者(marker)接口。也就是说,对于要实现它的类来说,该接口不需要实现任何方法。 Ⅲ:将对象读出或者写入流的主要类有两个:ObjectOutputStream与ObjectInputStream。 Ⅳ:以上都不对。

    A.Ⅱ、Ⅲ

    B.Ⅱ、Ⅳ

    C.Ⅰ、Ⅱ、Ⅲ

    D.Ⅲ、Ⅳ


    正确答案:C
    解析:本题是考查串行化的概念。对象串行化机制需要将对象的状态保存到文件中,而后能够通过读入对象状态来重新构造对象,恢复程序状态,对使用套接字在网络上传送对象的程序来说,是很有用的。通过让类实现 java.io.Serializable接口可以将类串行化。这个接口是一个制造者(marker)接口。也就是说,对于要实现它的类来说,该接口不需要实现任何方法。它主要用来通知Java虚拟机(JVM),将一个对象串行化。ObjectOutputStrcam提供用来将对象写入输出流的writeObject方法, ObjectlnputStrcam提供从输入流中读出对象的 readObject方法。

  • 第18题:

    下列说法中,不正确的一项是______。

    A.可以用FileWriter对象作为PrintWfite类的构造方法的参数

    B.可以用FileOutputStream对象作为PrintWrite类的构造方法的参数

    C.PrintWriter类的println()方法不可以刷新输出缓冲区

    D.PrintWriter类的println()方法可以刷新输出缓冲区


    正确答案:C

  • 第19题:

    在串行化类中实现部分串行化的两个方法为( )。

    A.writeExtemal()和readExtemal()

    B.writeObject()和readObject()

    C.Datalnput()和DataOutput()

    D.read()和write()


    正确答案:B
    解析:对象串行化定义分为两个层次:部分定制串行化和完全定制串行化。在串行化类中定义两个方法实现部分串行化的定制,这两个方法是writeObject()和readObject()。

  • 第20题:

    下列代码将对象写入的设备是( )。 ByteArrayOutputStream bout=new ByteArrayOut- putStream; ObjectOutputStream ut=new ObjectOutputStream (bout); out.writeObject(this); out.close;

    A.内存

    B.硬盘

    C.屏幕

    D.网络


    正确答案:A
    A。【解析】ObjectOutputStream类的构造方法是obiectoutputStream(OutputStreamout)。Java中的二进制流全都写入到内存中。

  • 第21题:

    以下各项说法中错误的是( )。

    A.可串行化的类必须实现Serializable接口

    B.可串行化的类中的静态变量可以不被串行化

    C.private数据访问权限能够限制数据不被串行化

    D.对象串行化使用Java语言提供的默认机制


    正确答案:C
    解析:一般的数据访问权限,如public、protected、package或private等,对数据的串行化没有影响。只有static和transient关键字修饰的数据才可以不被串行化。

  • 第22题:

    关于对象的序列化说法错误的是()。

    • A、 实现序列化的对象必须实现Serializable接口
    • B、 实现序列化的对象必须自定义序列号
    • C、 ObjectOutputStream中的writeObject()方法可以将对象写出
    • D、 ObjectInputStream中的readObject()方法可以读取对象

    正确答案:B

  • 第23题:

    单选题
    下列代码将对象写入的设备是(  )。ByteArrayOutputStream bout = new ByteArrayOutputStream();ObjectOutputStream out = new ObjectOutputStream(bout);Out.writeObject(this);Out.close();
    A

    内存

    B

    硬盘

    C

    屏幕

    D

    网络


    正确答案: B
    解析:
    Java中的二进制流全都写入到内存中。ByteArrayOutputStream是读写内存流类,用于向字节数组中写入数据。ObjectOutputStream.writeObject()的作用是把一个实例的对象写入对象输出流中。