首页 > 试题广场 >

以下关于对象序列化描述正确的是

[不定项选择题]
以下关于对象序列化描述正确的是
  • 使用FileOutputStream可以将对象进行传输
  • 使用PrintWriter可以将对象进行传输
  • 使用transient修饰的变量不会被序列化
  • 对象序列化的所属类需要实现Serializable接口
推荐
CD:
    使用ObjectOutputStream和ObjectInputStream可以将对象进行传输.
    声明为static和transient类型的成员数据不能被串行化。因为static代表类的状态, transient代表对象的临时数据。

编辑于 2015-04-07 09:28:07 回复(10)
1、答案应该是C、D。
2、能够对对象进行传输的貌似只有ObjectOutputStream和ObjectInputStream这些以Object开头的流对象。
3、D项继承Seriallizable接口是经常见到的,这毋庸置疑。
4、transient 修饰的变量在对象串化的时侯并不会将所赋值的值保存到传中,串化的对象从磁盘读取出来仍然是null。
5、这值得说下Volatile这个修饰符,它是针对多线程情况下出现的。当线程读取它修饰的变量时,都会强迫从主存中重新读取。
发表于 2015-04-02 21:05:52 回复(4)

发表于 2016-08-06 22:23:11 回复(8)
首先解释什么是对象的序列化:
对象的序列化:Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java对象序列化就能够帮助我们实现该功能。
使用Java对象序列化,在保存对象时,会把其状态保存为一组字节,在未来,再将这些字节组装成对象。必须注意地是,对象序列化保存的是对象的"状态",即它的成员变量。由此可知,对象序列化不会关注类中的静态变量。
A、B:使用ObjectInputStream和ObjectoutputStream进行对象的传输
注意:1.基本数据类型的变量可以直接序列化
2.对象要被序列化,它的类必须实现Serializable接口,如果一个类中有引用类型的变量,这个引用类型的变量的类也必须实现Serializable接口。如果这个引用类型的变量不想被实例化,则用transient修饰(ObjectInputStream)
发表于 2017-06-22 20:10:41 回复(0)
C和D transient这个单词本身的意思就是瞬时的意思 transient是变量修饰符 变量定义为transient的,序列化时会忽略此字段,所以C是对的, 只有实现了Serializable接口的,才可以被序列化
发表于 2015-03-12 18:15:57 回复(0)
A.  将对象进行传输 使用ObjectOutputStream和 ObjectInputStream
B. java.io.FileOutputStream 以字节流的方式保存到所指定文件。不过,如果写字符数据,FileWriter 更方便一些。FileWriter 除了提供了文件写入功能之外,还内置了字符编码功能。
C/D. java 的transient关键字为我们提供了便利,你只需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中。
发表于 2016-06-17 12:29:21 回复(0)
  • 序列化: 将Java对象或数据结构通过序列化机制转换成二进制字节流传输到网络其他节点或存储介质上。
  • 反序列化: 将网络或存储介质中的二进制字节流通过反序列化机制将其转换成Java对象或数据结构。
发表于 2021-07-15 19:32:24 回复(0)
搞安卓的同学可能都纠结了下D,因为还有个Parcelable。。。然而这里是Java题库。
发表于 2017-03-29 15:13:28 回复(1)
选CD
A、B 对象传输有专门的对象流。
C、序列化的过程中只有属性可以被序列化,方法不可以。同时一旦属性被transient或者static修饰。属性不可序列化。
D、没毛病。看了一下有人说可以利用外部序列化,但是这个外部序列化的接口可是继承了序列化的接口啊。public interface Externalizable extends java.io.Serializable 
发表于 2018-07-24 11:06:06 回复(0)
D
发表于 2015-03-12 09:52:53 回复(0)
使用ObjectOutputStream和ObjectInputStream可以将对象进行传输,
使用transient修饰的变量不会被序列化

发表于 2022-02-19 16:24:22 回复(0)
1、答案应该是C、D。 2、能够对对象进行传输的貌似只有ObjectOutputStream和ObjectInputStream这些以Object开头的流对象。 3、D项继承Seriallizable接口是经常见到的,这毋庸置疑。 4、transient 修饰的变量在对象串化的时侯并不会将所赋值的值保存到传中,串化的对象从磁盘读取出来仍然是null。 5、这值得说下Volatile这个修饰符,它是针对多线程情况下出现的。当线程读取它修饰的变量时,都会强迫从主存中重新读取。
发表于 2017-09-07 23:34:40 回复(0)
这里感觉就是比较拗口,什么是对象传输呢? 说到对象存储,都会想到ObjectOutputStream/ObjectInputStream。但是问题是,如何理解对象的传输?oos这个也是将对象进行了序列化(存储了属性值),那么如果使用FileOutputStream,重写对象的ToString()方法,我不能将对象进行序列化保存传输吗,PrintWriter也是一样。如果传输过去,我难道不能根据设定的存储格式,反序列化(这里准确的说,是new新对象,从文件/网络流里读取反向构造吗)。不知道我误解了题,还是题目本身不严谨!!!
发表于 2016-08-25 13:28:53 回复(0)
CD
使用ObjectInputStream和ObjectOutputStream对对象进行传输

发表于 2015-04-08 11:05:49 回复(0)
cd
发表于 2015-03-23 18:38:25 回复(0)
1 .能够传输对象的只有以object开头的流对象(ObjectOutputStream) 2 .Serializable 一个对象想要被序列化,那他就要实现此接口。(基本数据类型可以直接序列化,但是对象要被序列化,他必须要实现Serializable接口,如果一个类中的实例变量是引用类型,那他也要实现serializable接口去序列化,或者使用transient关键字不序列化,这个类才能成功序列化)
发表于 2023-09-19 07:17:17 回复(0)
72%头像 72%
1. 一旦变量被transient修饰后,该变量内容在序列化后无法获得访问;
2. transient只能用来修饰变量,不能修饰方法和类;
3. 静态变量不能被序列化。
发表于 2019-12-15 18:47:03 回复(0)
If头像 If
cd
发表于 2015-04-04 22:50:53 回复(0)
明显是C和D嘛
发表于 2015-03-12 20:23:38 回复(0)
1、答案应该是C、D。 2、能够对对象进行传输的貌似只有ObjectOutputStream和ObjectInputStream这些以Object开头的流对象。 3、D项继承Seriallizable接口是经常见到的,这毋庸置疑。 4、transient 修饰的变量在对象串化的时侯并不会将所赋值的值保存到传中,串化的对象从磁盘读取出来仍然是null。 5、这值得说下Volatile这个修饰符,它是针对多线程情况下出现的。当线程读取它修饰的变量时,都会强迫从主存中重新读取。
发表于 2024-08-18 23:31:20 回复(0)
对象传输不是fileoutputstream
编辑于 2024-02-14 01:47:33 回复(0)