1、全国计算机等级考试二级 JAVA真题 2008年 4月及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.程序流程图中带有箭头的线段表示的是(分数:2.00)A.图元关系B.数据流C.控制流D.调用关系2.结构化程序设计的基本原则不包括(分数:2.00)A.多态性B.自顶向下C.模块化D.逐步求精3.软件设计中模块划分应遵循的准则是(分数:2.00)A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合4.在软件开发中,需求分析阶段产生的主要文档是(分数:2.00)A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集
2、成测试计划5.算法的有穷性是指(分数:2.00)A.算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用6.对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2的排序方法是(分数:2.00)A.快速排序B.冒泡排序C.直接插入排序D.堆排序7.下列关于栈的叙述正确的是(分数:2.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据8.在数据库设计中,将 E-R图转换成关系数据模型的过程属于(分数:2.00)A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶
3、段9.有三个关系 R、S 和 T,如下: (分数:2.00)A.并B.自然连接C.笛卡尔积D.交10.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC的关键字(键或码)为(分数:2.00)A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩11.下列对 Java特性的叙述中,错误的是(分数:2.00)A.在编写 Java子类时可以自由地增加新方法和属性B.Java的 Applet要求编程首先创建 JFrame窗口C.Java语言用解释器执行字节码D.Java中的类一般都有自己的属性和方法12.下
4、列对 Java源程序结构的叙述中,错误的是(分数:2.00)A.import语句必须在所有类定义之前B.接口定义允许 0或多个C.Java Application中的 public class类定义允许 0或多个D.package语句允许 0或 1个13.下列变量定义中,正确的是(分数:2.00)A.long 1=123LB.long 1=3.14156fC.int i=“k“D.double d=1.55989E2f14.下列 Java表达式 19/3 (int)71.7-2*3 7% 3 (double)1/8+3 计算结果是(分数:2.00)A.6.3 64 2 2.5B.6 63 1
5、3.125C.6.4 67 2 2.5D.6 65 1 3.12515.switch语句中表达式(expression)的值不允许用的类型是(分数:2.00)A.byteB.intC.booleanD.char16.下列语句能给数组赋值而不使用 for循环的是(分数:2.00)A.myArray1=“One“;2=“Two“;3=“Three“;B.String s5=new String“Zero“, “One“, “Two“, “There“, “Four“;C.String s=new String“Zero“, “One“, “Two“, “There“, “Four“;D.Strin
6、g s=new String=|“Zero“, “One“, “Two“, “There“, “Four“;17.Swing与 AWT相比新增的布局管理器是(分数:2.00)A.CardLayoutB.CardLayoutC.CardBagLayoutD.BoxLayout18.下列语句中正确的是(分数:2.00)A.Syste ou println(1+1);B.int i=2+“2“;C.Sting s=“on“+ong;D.byte b=257;19.下列关键字中可以表示常量的是(分数:2.00)A.finalB.defaultC.privateD.transient20.在 Java语
7、言中,被称为内存分配的运算符是(分数:2.00)A.newB.instance ofC.D.()21.阅读下面程序 pubic class Cycle public static void main(String args) System. out. println(args0); 在命令行中输入 java Cycle one two,该程序输出结果是(分数:2.00)A.CycleB.oneC.twoD.上述 A、B、C、均不对22.阅读下面程序 public class My Val public static void main(String args) My Val m=new My
8、Val(); m. amethod(); public void amethod() boolean b=new Boolean5; 程序编译或运行结果是(分数:2.00)A.1B.nullC.“ “D.编译不能过23.阅读下面求质数的程序 import java. lang. Math. * ; public class MorePrimesTest public static void main(Stringargs) longprimes=new long20; primes02L; primes13L; long number=5L; outer: for(int count=2; c
9、ountprimes. length; number+ =2L) long limit=(long)Math. ceil(Math. sqrt(double)number); for(int i=1; icount i+ +) if(number_primesi=0L) cotinue outer; for(int j=0; jprimes. length; j +) long n=primesj; System. out. println(n); 在程序下画线处填入的正确选项是(分数:2.00)A. public class WriteFile public static void main
10、(StringA) intmyArray=10,20,30,40; try FileOutputStream f=new FlieOutStream(“ints. dat“); DataOutputStream_=new DataOutputStream(f); for(int i=0; imyArray. length; i +) dos. writeInt(myArrayi); dos. close(); System. out. prinfln(“Have written binary file ints. dat“); catch(IOException ioe) System. ou
11、t. println(“IO Exception“); 在程序下画线处填入的正确选项是(分数:2.00)A.myArrayB.dosC.ioeD.ints27.阅读下面程序 public class Test2_ public static void main(String args) Thread t=new Test2(); t. start(); public void run() System. out. priatln(“How are you. “); 在程序下画线处填入的正确的选项是(分数:2.00)A.implements ThreadB.extends RunnableC.i
12、mplements RunnableD.extends Thread28.阅读下面程序 public class Test implements Runnable public static void main(Stringargs) _; t. start(); public void mR() System. out. println(“Hello!“); 在程序下画线处填入正确选项是(分数:2.00)A.Test t=flew Test()B.Thread t=new Thread();C.Thread t=new Thread(new Test();D.Test t=new Threa
13、d();29.下列关于 Applet中加载图像的说法,错误的是(分数:2.00)A.可以使用 Applet类的 getImage()方法获得图像对象B.程序员必须自行定义获得图像及显示图像的类和方法C.图像由一个 jav Image类的对象来表示D.可以使用 Graphics类的 drawImage()方法显示图像30.下列带下画线的标识符符合 Java命名约定的是(分数:2.00)A.package coBhrB.public class xyzC.intID.void setCustomerName()31.RandomAccessFile是 java. io包中的一个兼有输入输出功能的类
14、。由于它是随机访问,所以文件读写一个记录的位置是(分数:2.00)A.起始B.终止C.任意D.固定32.阅读下面 Applet程序 import javax. swing. *; import java. awt. *; public class SwintgApplet extends JApplet JLabel 1=new JLabel(“This is a Swing Applet.“); public void init() _ 在程序下画线处填入正确的选项是(分数:2.00)A.Container contentPane=getContenPane(); cotentPan add
15、(1);B.JPanel comtenPane=new Jpane(); contentPan add(1);C.contentPan add(1);D.add(1);33.在 Java中,“目录”被看作是(分数:2.00)A.文件B.流C.数据D.接口34.阅读下面实现堆栈类并发控制的部分代码 public class DataStack private int idx=0; private intdata=new int8; public void push(int i) . _ dataidx=i; idx + +; 在程序下画线处填入正确选项是(分数:2.00)A.synchroniz
16、edB.synchronized(thiC.synchronized()D.synchronized(id35.下列关于对象串行化的说法错误的是(分数:2.00)A.Java中,默认所有类的对象都可串行化B.在对象串行化时,不保存对象所属类的构造方法C.在实现 Serializeble接口的类中,用 transient关键字可使某些数据不被串行化D.ObjectInputStream和 ObjectOutputStream类都支持对象的读和写二、B填空题/B(总题数:15,分数:30.00)36.测试用例包括输入值集和U 【1】 /U值集。(分数:2.00)填空项 1:_37.深度为 5的满二
17、叉树有U 【2】 /U个叶子结点。(分数:2.00)填空项 1:_38.设某循环队列的容量为 50,头指针 front=5(指向队头元素的前一位置),尾指针 rear=29(指向队尾元素),则该循环队列中共有U 【3】 /U个元素。(分数:2.00)填空项 1:_39.在关系数据库中,用来表示实体之间联系的是U 【4】 /U。(分数:2.00)填空项 1:_40.在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,U 【5】 /U负责数据的模式定义与数据的物理存取构建。(分数:2.00)填空项 1:_41.按照 Java中的命名约定,方法名的起始字母一般都是小写,但是U 【6】
18、/U方法例外。(分数:2.00)填空项 1:_42.Swing中的按钮类是U 【7】 /U。(分数:2.00)填空项 1:_43.Java中的三元运算符是U 【8】 /U。(分数:2.00)填空项 1:_44.Java输入/输出流中包括字节流、U 【9】 /U、文件流、对象流及管道流。(分数:2.00)填空项 1:_45.在 Java中,对象流以U 【10】 /U方式传送和存储。(分数:2.00)填空项 1:_46.请将下面程序补充完整。 public class PowerCalc public static void main(Stringargs) double x=5.0; Syste
19、m. out. println(x+“to the power 4 is“+power(x, 4); System. out. println(“7. 5 to the power 5 is“+power(7.5, 5); System. out. println(“7.5 to the power 0 is“+power(7.5, 0); System. out. println(“10 to the power -2 is“+power(10, -2); static doubleU 【11】 /U (double x, int n) if(n1) return x * power(x,
20、n-1); else if(n0) return 1.0/power(x, -n); else return n=0 ? 1.0:x; (分数:2.00)填空项 1:_47.请将下面的 Applet程序补充完整。 import java. awt. *; import java. applet. *; public class HiU 【12】 /U public void paint(Graphics g) g. drawString(“Hi!“, 25, 25); (分数:2.00)填空项 1:_48.Swing中的组件往往采用 MVC结构,MVC 指的是 Model、View 和U 【1
21、3】 /U。(分数:2.00)填空项 1:_49.Java中,可以通过建立 java. lang. U【14】 /U类或其子类的实例创建和控制线程。(分数:2.00)填空项 1:_50.如果一个线程调用U 【15】 /U ()方法,将使该线程进入休眠状态。(分数:2.00)填空项 1:_全国计算机等级考试二级 JAVA真题 2008年 4月答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.程序流程图中带有箭头的线段表示的是(分数:2.00)A.图元关系B.数据流C.控制流 D.调用关系解析:解析 程序流程图是人们对解决问题的方法、思路或算
22、法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义:或表示控制流;表示加工步骤;表示逻辑条件。2.结构化程序设计的基本原则不包括(分数:2.00)A.多态性 B.自顶向下C.模块化D.逐步求精解析:解析 结构化程序设计的原则包括:“自顶而下,逐步求精”的设计思想,“独立功能,单出、入口”的模块化设计等。多态性是面向对象程序语言的特征。3.软
23、件设计中模块划分应遵循的准则是(分数:2.00)A.低内聚低耦合B.高内聚低耦合 C.低内聚高耦合D.高内聚高耦合解析:解析 模块划分应遵循的准则包括模块之间的耦合和内聚。一般来说,要求模块之间的耦合尽可能地低,即模块尽可能独立,要求模块的内聚程度尽可能地高,即高内聚、低耦合的原则。4.在软件开发中,需求分析阶段产生的主要文档是(分数:2.00)A.可行性分析报告B.软件需求规格说明书 C.概要设计说明书D.集成测试计划解析:解析 需求分析阶段的工作主要包括需求获取、需求分析、编写需求规格说明书和需求评审等 4方面。产生的主要文档为软件需求规格说明书,可以为用户、分析人员和设计人员之间的交流提
24、供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进程的依据。5.算法的有穷性是指(分数:2.00)A.算法程序的运行时间是有限的 B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用解析:解析 算法具有 5个特性:有穷性:一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有限时间内完成,即运行时间是有限的。确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。可行性:一个算法是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。输入:一个算法有零个或多个输入,这些输入取自于某个特定的对
25、象的集合。输出:一个算法有一个或多个输出。6.对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2的排序方法是(分数:2.00)A.快速排序B.冒泡排序C.直接插入排序D.堆排序 解析:解析 在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都是 n(n-1)/2,堆排序需要比较的次数为 nlog2n。7.下列关于栈的叙述正确的是(分数:2.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据 C.只能在栈底插入数据D.不能删除数据解析:解析 在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先
26、被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照“先进后出”或“后进先出”的原则组织数据的。8.在数据库设计中,将 E-R图转换成关系数据模型的过程属于(分数:2.00)A.需求分析阶段B.概念设计阶段C.逻辑设计阶段 D.物理设计阶段解析:解析 数据库的逻辑设计分为:将概念模型转换成一般的数据模型;将一般的数据模型转换为特定的数据库管理系统所支持的数据模型。把概念模型转换成关系数据模型就是把 E-R图转换成一组关系模式。9.有三个关系 R、S 和 T,如下: (分数:2.00)A.并B.自然连接C.笛卡尔积D.交 解析:解析 在关系运算中,交的定义如下:设
27、 R1和 R2为参加运算的两个关系,它们具有相同的度n,且相对应的属性值取自同一个域,则 R1R2 为交运算,结果仍为度等于 n的关系,其中,交运算的结果既属于 R1又属于 R2。10.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC的关键字(键或码)为(分数:2.00)A.课号,成绩B.学号,成绩C.学号,课号 D.学号,姓名,成绩解析:解析 “选课 SC”表是“学生 S”表和“课程 C”表的映射表,主键是两个表主键的组合。11.下列对 Java特性的叙述中,错误的是(分数:2.00)A.在编写 Jav
28、a子类时可以自由地增加新方法和属性B.Java的 Applet要求编程首先创建 JFrame窗口 C.Java语言用解释器执行字节码D.Java中的类一般都有自己的属性和方法解析:解析 编写自己的 Applel时不需要创建 JFrame窗口,但需要继承 Applet类,并嵌入 html网页中运行。12.下列对 Java源程序结构的叙述中,错误的是(分数:2.00)A.import语句必须在所有类定义之前B.接口定义允许 0或多个C.Java Application中的 public class类定义允许 0或多个 D.package语句允许 0或 1个解析:解析 Java applicatio
29、n 中的 public class定义只能是 0个或 1个,不能为多个,而且如果是1个的话,文件名要与 public class修饰的类名相同。13.下列变量定义中,正确的是(分数:2.00)A.long 1=123L B.long 1=3.14156fC.int i=“k“D.double d=1.55989E2f解析:解析 根据 Java向下转型的特点,B)需要强制类型转换,C)字符串类型不能赋给整型,D)可以自动类型转换,但不推荐使用。14.下列 Java表达式 19/3 (int)71.7-2*3 7% 3 (double)1/8+3 计算结果是(分数:2.00)A.6.3 64 2
30、2.5B.6 63 1 3.125C.6.4 67 2 2.5D.6 65 1 3.125 解析:解析 “/”表示整除,“int”将 71.7强制转化为整数 71后再做减法运算,“%”是取余运算,“double”将 1/8转化成 double类型后做加法运算。15.switch语句中表达式(expression)的值不允许用的类型是(分数:2.00)A.byteB.intC.boolean D.char解析:解析 switch 语句用于多重选择,其参数可以是字节型、整型或字符型;而布尔型只有两个值(True、False),一般用于 if语句。16.下列语句能给数组赋值而不使用 for循环的是(
31、分数:2.00)A.myArray1=“One“;2=“Two“;3=“Three“;B.String s5=new String“Zero“, “One“, “Two“, “There“, “Four“;C.String s=new String“Zero“, “One“, “Two“, “There“, “Four“; D.String s=new String=|“Zero“, “One“, “Two“, “There“, “Four“;解析:解析 A)、D)语法不正确,B)中 s5的形式只能通过 for循环的格式进行赋值,而不能直接赋值。C)中表达式左侧的“”说明现在定义一个数组,不需
32、要指明数组长度,而表达式右侧“”在后面直接紧跟初始内容时也是不需要指定数组大小的,数组大小直接由初值长度决定。17.Swing与 AWT相比新增的布局管理器是(分数:2.00)A.CardLayoutB.CardLayoutC.CardBagLayoutD.BoxLayout 解析:解析 AWT 的布局管理器有 FlowLayout、GridLayout、BorderLayout、CardLayout 和GridBagLayout。Swing 的布局管理器有 CenterLavout、BoxLayout、OverlayLayout 和 SpringLayout。18.下列语句中正确的是(分数:
33、2.00)A.Syste ou println(1+1); B.int i=2+“2“;C.Sting s=“on“+ong;D.byte b=257;解析:解析 B)整型不能与字符串类型直接相加,D)中“+”表示两个字符串的拼接,“one”是非法字符串常量声明,D)中赋值类型不匹配。19.下列关键字中可以表示常量的是(分数:2.00)A.final B.defaultC.privateD.transient解析:解析 final 关键字声明的变量不能再修改,即为常量。default 关键字用于在 switch分支里作默认分支项;private 关键字则用于声明私有变量和方法类;transie
34、nt 关键字用于修饰变量以表明此变量易变,不需要串行化处理。20.在 Java语言中,被称为内存分配的运算符是(分数:2.00)A.new B.instance ofC.D.()解析:解析 在 Java中对内存进行动态分配的只有通过使用关键字 new。instance of 用于测试某个对象是否为某个类的实例;、()是与数组、函数声明或运算相关的符号,不涉及内存分配。21.阅读下面程序 pubic class Cycle public static void main(String args) System. out. println(args0); 在命令行中输入 java Cycle on
35、e two,该程序输出结果是(分数:2.00)A.CycleB.one C.twoD.上述 A、B、C、均不对解析:解析 main 方法中的参数 args是 String类型的数组,所以当在命令行中输入参数 one、two 时,args数组中有两个元素:arg0=one,arg1=two。所以打印输出 arg0为 one。22.阅读下面程序 public class My Val public static void main(String args) My Val m=new My Val(); m. amethod(); public void amethod() boolean b=ne
36、w Boolean5; 程序编译或运行结果是(分数:2.00)A.1B.nullC.“ “ D.编译不能过解析:解析 编译能通过,但不在控制台输出任何信息。程序只是实例化了一个布尔类型的数组,且由于此数组为局部变量,不会自动初始化,故其中值都为 null。23.阅读下面求质数的程序 import java. lang. Math. * ; public class MorePrimesTest public static void main(Stringargs) longprimes=new long20; primes02L; primes13L; long number=5L; oute
37、r: for(int count=2; countprimes. length; number+ =2L) long limit=(long)Math. ceil(Math. sqrt(double)number); for(int i=1; icount i+ +) if(number_primesi=0L) cotinue outer; for(int j=0; jprimes. length; j +) long n=primesj; System. out. println(n); 在程序下画线处填入的正确选项是(分数:2.00)A. public class WriteFile pu
38、blic static void main(StringA) intmyArray=10,20,30,40; try FileOutputStream f=new FlieOutStream(“ints. dat“); DataOutputStream_=new DataOutputStream(f); for(int i=0; imyArray. length; i +) dos. writeInt(myArrayi); dos. close(); System. out. prinfln(“Have written binary file ints. dat“); catch(IOExce
39、ption ioe) System. out. println(“IO Exception“); 在程序下画线处填入的正确选项是(分数:2.00)A.myArrayB.dos C.ioeD.ints解析:解析 要求填写的是一个 DataOuputStream类的对象名称,根据程序下文中出现的 dos. writeInt可知,对象名称为 dos。27.阅读下面程序 public class Test2_ public static void main(String args) Thread t=new Test2(); t. start(); public void run() System.
40、out. priatln(“How are you. “); 在程序下画线处填入的正确的选项是(分数:2.00)A.implements ThreadB.extends RunnableC.implements RunnableD.extends Thread 解析:解析 Thread 类是多线程基类,多线程启动类必须继承此类。而实现 Runnable接口的类能作为多线程的一个执行任务,一般作为参数传给新的 Thread类。28.阅读下面程序 public class Test implements Runnable public static void main(Stringargs) _;
41、 t. start(); public void mR() System. out. println(“Hello!“); 在程序下画线处填入正确选项是(分数:2.00)A.Test t=flew Test()B.Thread t=new Thread();C.Thread t=new Thread(new Test(); D.Test t=new Thread();解析:解析 根据 t. start()可知 t应该是一个 Thread类,排除 A)。Thread 类与 Test类之间没有继承关系,所以排除 D)。B)没有指定创建线程的对象,因此 t. start()语句不能使 Test类的
42、run方法运行。所以选 C)。29.下列关于 Applet中加载图像的说法,错误的是(分数:2.00)A.可以使用 Applet类的 getImage()方法获得图像对象B.程序员必须自行定义获得图像及显示图像的类和方法 C.图像由一个 jav Image类的对象来表示D.可以使用 Graphics类的 drawImage()方法显示图像解析:解析 Applet 中图像由 java. Image类的对象表示,使用 getImage()方法获得图像,用Graphics类的 drawImage()方法显示图像。30.下列带下画线的标识符符合 Java命名约定的是(分数:2.00)A.package
43、 coBhrB.public class xyzC.intID.void setCustomerName() 解析:解析 包名采用完整的英文描述符,应该由小写字母组成;方法名的第一个单词应该是动词,大小写可混用,但首字母应小写;变量的命名应该大小写混用,但首字母小写;类名应采用具有特定意义的完整描述符。31.RandomAccessFile是 java. io包中的一个兼有输入输出功能的类。由于它是随机访问,所以文件读写一个记录的位置是(分数:2.00)A.起始B.终止C.任意 D.固定解析:解析 RandomAccessFile 实例支持对随机存取文件的读取和写入。从文件指针处开始读写文件记
44、录,并随着字节的读写移动指针。该文件指针可以通过 getFilePointer方法读取,并通过 seek方法设置。所以文件读写一个记录的位置是随机的。32.阅读下面 Applet程序 import javax. swing. *; import java. awt. *; public class SwintgApplet extends JApplet JLabel 1=new JLabel(“This is a Swing Applet.“); public void init() _ 在程序下画线处填入正确的选项是(分数:2.00)A.Container contentPane=getC
45、ontenPane(); cotentPan add(1); B.JPanel comtenPane=new Jpane(); contentPan add(1);C.contentPan add(1);D.add(1);解析:解析 不能直接调用 add方法将“1”标签加到 JApplet对象上,而要先调用 JApplet类的getContentPane()方法获得此 applet的 eontentPane对象,然后再调用 add方法将“1”标签对象加到此contentPane对象上。33.在 Java中,“目录”被看作是(分数:2.00)A.文件 B.流C.数据D.接口解析:解析 Java
46、中的文件和目录都看成文件,可通过 File类的 idDirectory()和 isFile()方法判断某个 File是目录还是标准文件。34.阅读下面实现堆栈类并发控制的部分代码 public class DataStack private int idx=0; private intdata=new int8; public void push(int i) . _ dataidx=i; idx + +; 在程序下画线处填入正确选项是(分数:2.00)A.synchronizedB.synchronized(thi C.synchronized()D.synchronized(id解析:解析 synchronized 关键字用于同步方法,而在同步一个代码块时,用度 synchronized(this)来实现。35.下列关于对象串行化的说法错误的是(分数:2.00)A.Java中,默认所有类的对象都可串行化 B.在对象串行化时,不保存对象所属类的构造方法C.在实现