1、二级 JAVA 笔试-152 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列程序的输出结果是( )。classTestpublicstaticvoidmain(Stringargs)intn=7;n=3;n=n&n+1|n+2n+3;n=2;System.out.println(n);(分数:2.00)A.0B.-1C.14D.642.下列关于 JDK 目录结构的说法,错误的是( )。(分数:2.00)A.bin 目录下有许多工具B.demo 目录下有各种演示例子C.include 目录下都是库文件D.jre 目录是 Java 程序运
2、行环境的根目录3.下列关于线程优先级的说法中,正确的是( )。(分数:2.00)A.线程的优先级是不能改变的B.线程的优先级是在创建线程时设置的C.在创建线程后的任何时候都可以设置D.B 和 C4.当检索一个压缩文件时,首先要建立压缩文件输入流对象,该对象( )。(分数:2.00)A.以选中的压缩文件为参数B.以 FilelnputStreard 对象为参数C.以 InputStreamReader 对象为参数D.以 BufferedReader 对象为参数5.下列代码中,将引起编译错误的行是( )。1)publicclassExercise2)publicstaticvoidmain(Str
3、ingargs)3)floatf=0.0;4)f+=1.0;5)6)(分数:2.00)A.第 2 行B.第 3 行C.第 4 行D.第 6 行6.能将程序补充完整的选项是( )。classPersonprivateinta;publicintchange(intm)returnm;publicclassTeacherextendsPersonpublicintb;publicstaticvoidmain(StringargDPersonp=newPerson();Teachert=newTeacher();inti;(分数:2.00)A.i=mB.i=bC.i=p.aD.i=p.change(
4、50)7.将一个容器 panell 放到容器 framel 中的方法是( )。(分数:2.00)A.framel.insert(panell)B.framel.add(panell)C.framel.addJPanel(panell)D.flamel.insertJPanel(panell)8.为了提高软件模块的独立性,模块之间最好是( )。(分数:2.00)A.控制耦合B.公共耦合C.内容耦合D.数据耦合9.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指( )。(分数:2.00)A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上
5、三种说法都不对10.有下列二叉树,对此二叉树中序遍历的结果为( )。(分数:2.00)A.B.C.D.11.用来实现 Java 虚拟机的语言是( )。(分数:2.00)A.JavaB.CC.C+D.汇编12.下列描述中正确的是( )。(分数:2.00)A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D.软件工程只是解决软件开发过程中的技术问题13.下列对类的声明,正确的是( )。(分数:2.00)A.abstractfinalclassHhB.abstractprivatemove()C.protect
6、edprivatenumber;D.publicabstractclassCar14.下列说法正确的是( )。(分数:2.00)A.类 FilelnputStream 和 FileOutputStream 用来进行文件 I/0 处理,由它们所提供的方法可以打开本地主机上的文件,并进行顺序的读/写B.通过类 File 的实例或者一个表示文件名称的字符串可以生成文件输入/输出流,在流对象生成的同时,文件被打开,但还不能进行文件读/写C.对于 InputStream 和 OutputStream 来说,它们的实例都是是非顺序访问流,即只能进行顺序的读/写D.当从标准输入流读取数据时,从键盘输入的数据
7、直接输入到程序中15.为了向一个 Applet 传递参数,可以在 HTML 文件的 APPLET 标志中使用 PAPAM 选项。在 Applet 程序中获取参数时,应使用的方法是( )。(分数:2.00)A.getParameter()B.getDocumentBase()C.getCodeBase()D.getlmage()16.当启动 Applet 程序时,首先调用的方法是( )。(分数:2.00)A.stop()B.init()C.start()D.destroy()17.下列关于 JavaApplication 与 Applet 的说法中,正确的是( )。(分数:2.00)A.都包含
8、main()方法B.都通过“appletviewer”命令执行C.都通过“javac”命令编译D.都嵌入在 HTML 文件中执行18.栈和队列的共同点是( )。(分数:2.00)A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同特点19.数据的存储结构是指( )。(分数:2.00)A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示20.文件操作中,用于移动文件指针到指定的位置的是( )。(分数:2.00)A.seek(longpos)B.lengh()C.find()D.skipBytes(intn)21.
9、下列程序实现对 ZIP 文件 file.zip 的检索,在横线处填入正确的语句( )。packagetest;importjava.io.*;importjava.util.*;importjava.util.zip.*;publicclassExampublicstaticvoidmain(Stringargs)tryFilelnputStream zis=rlewFilelnputStream(“test/filezip“);ZiplnputStreamzis=newZiplnputStream(ns);ZipEntryen;while(_)!=null)en.getName();zis.
10、closeEntry();zis.close();catch(Exceptione)e.printStackTrace();(分数:2.00)A.en=zis.getNextEntry()B.en=zis.getNextEntry()C.en=zis.getEntry()D.zis.getNextEntry()22.下列叙述中正确的是( )。(分数:2.00)A.在面向对象的程序设计中,各个对象之间具有密切的关系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之问相对独立,相互依赖性小D.上述 3 种说法都不对23.下列选项默认的布局管理器不是 BorderL
11、ayout 的是( )。(分数:2.00)A.WindowB.PanelC.FrameD.Dialog24.对于长度为 n 的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的足( )。(分数:2.00)A.冒泡排序 n/2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1)/225.下列有关 Java 语言的叙述中,正确的是( )。(分数:2.00)A.可以有 2 个以上 package 语句B.可以有 2 个以上 import 语句C.可以有 2 个以上 public 类D.只能有 1 个类定义26.下列关于 Java 多线程并发控制机制的叙述中,错误的是( )。(分数
12、:2.00)A.Java 中对共享数据操作的并发控制是采用加锁技术B.线程之间的交互,提倡采用 suspend()/resume()方法C.共享数据的访问权限都必须定义为 pdvateD.Java 中没有提供检测与避免死锁的专门机制,但应用程序员可以采用某些策略防止死锁的发生27.下列方法中可以用来创建一个新线程的是( )。(分数:2.00)A.实现 java.lang.Runnable 接口并重写 start()方法B.实现 java.lang.Runnable 接口并重写 run()方法C.继承 java.lang.Thread 类并重写 run()方法D.实现 java.lang.Thr
13、ead 类并实现 start()方法28.下列关于 Java 安全性的说法正确的是( )。(分数:2.00)A.有严格的访问权限检查B.对程序执行前要检查C.不允许使用指针D.可防止对内存的非法入侵29.下列不是 InputStream 子类的是( )。(分数:2.00)A.文件输入流 FilelnputStreamB.对象输入流 ObjectInputStreamC.字符输入流 CharlnputStreamD.压缩文件输入流 Z 中 InputStream30.下列操作中,不属于 Applet 安全限制的是( )。(分数:2.00)A.加载本地库B.读写本地文件系统C.运行本地可执行程序D
14、.与同一个页面中的 Applet 通信31.对建立良好的程序设计风格,下列描述中正确的是( )。(分数:2.00)A.程序应该简单、清晰、可读性好B.符号名的命名只需要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无32.Java 中用于提供 Java 语言、Java 虚拟机的核心的类和接口的包是( )。(分数:2.00)A.java.io 包B.java.applet 包C.java.lang 包D 包33.对关系 S 和 R 进行集合运算,结果中既包含 S 中的所有元组也包含 R 中的所有元组,这样的集合运算称为( )。(分数:2.00)A.并运算B.交运算C.差运算D.积运算34
15、.线程在生命周期中要经历 5 种状态。如果线程当前是新建状态,则它可到达的下一个状态是( )。(分数:2.00)A.运行状态B.阻塞状态C.可运行状态D.终止状态35.下面属于面向对象语言的是( )。(分数:2.00)A.Java 语言B.机器语言C.C 语言D.汇编语言二、填空题(总题数:15,分数:30.00)36.在面向对象方法中, 1 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_37.在关系数据库中,把数据表示成二维表,每一个二维表称为 1。(分数:2.00)填空项 1:_38.软件工程研究的内容主要包括: 1 技术和软件工程管理。(分数:2.00)填空项 1
16、:_39.数据库系统其内部分为三级模式,即概念模式、内模式和外模式。其中, 1 是用户的数据视图,也就是用户所见到的数据模式。(分数:2.00)填空项 1:_40.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、 1 和选择排序。(分数:2.00)填空项 1:_41.在 Java 语言中最基本的元素是 1。(分数:2.00)填空项 1:_42.在一个类的内部嵌套定义的类称为 1。(分数:2.00)填空项 1:_43.进程是一个内核级别的实体,而线程是一个 1 级的实体。(分数:2.00)填空项 1:_44.在下面的代码段中填入一个适当的语句,表示从输入流中能读取对象。(注:Fi
17、lelnputStream 的形象为 theTime)FilelnputStreamin=_;ObjectlnputStreams=ObjectlnputStream(in);Stringtoday=(String)s.readObject();Datedata=(Date)SreadObject();(分数:2.00)填空项 1:_45.向 DataOutputStream 对象 dos 的当前位置处写入一个保存在变量 f 中的浮点数的语句是 1。(分数:2.00)填空项 1:_46.请将下列程序的空白处补充完整。Importjava.awt.*;PublicclassEll_4Public
18、staticvoidmain(Stringargs)Framef=newFrame(“BorderLayout”);fiadd(“North”,newbuRon(“North”);f.add(“East”,newbutton(“East”);f.add(“West”,newbutton(“West”);f.add(“South”,tf);f.setSize(200,200)fipack();fisetVisible(true);(分数:2.00)填空项 1:_47.Java 语言提供了 1 工具来管理组件在容器中的布局,而不使用直接设置组件位置和大小的方式。(分数:2.00)填空项 1:_48
19、.Applet 类中用于返回包含 Applet 的 HTML,文件 URL 的方法是 1。(分数:2.00)填空项 1:_49.J2SDK 的基本命令中用于 Java 类文件归档的是 1。(分数:2.00)填空项 1:_50.请在下面代码中加入监听器语句。importjava.awt.*;importjava.applet.Applet;publicclassSimpleextendsAppleimplementsMouseListenerStringBuffer;publicvoidinit()/监听器语句buffer=newStringBuffer();addltem(“initializ
20、ing”);publicvoidmoseEntered(MouseEventevent)publicvoidmoseExited(MouseEventevent)publicvoidmosePressed(MouseEventevent)publicvoidmoseReleased(MouseEventevent)publicvoidmoseClicked(MouseEventevent)addltem(“click!”);(分数:2.00)填空项 1:_二级 JAVA 笔试-152 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列程序的
21、输出结果是( )。classTestpublicstaticvoidmain(Stringargs)intn=7;n=3;n=n&n+1|n+2n+3;n=2;System.out.println(n);(分数:2.00)A.0B.-1C.14 D.64解析:解析 本题考查 Java 中的运算符。首先要清楚程序里面涉及的运算符的含义。“”是按位左移运算符,“&”是按位与运算符,“|”是按位或运算符,“”是按位异或运算符。题口中整型变量n=7 相当于二进制中的 111,n=3 语句执行后,n 值为 111000,相当于十进制的 56,而语句n=n&n+1|n+2n+3 执行后,n 值为 57,n
22、=2 语句执行后,n 的值为 14,所以选项 C 正确。2.下列关于 JDK 目录结构的说法,错误的是( )。(分数:2.00)A.bin 目录下有许多工具B.demo 目录下有各种演示例子C.include 目录下都是库文件 D.jre 目录是 Java 程序运行环境的根目录解析:解析 本题考查 JDK 目录结构。bin 目录下有编译器、解释器和各种工具,如服务器工具、IDL、package 工具和 idb 等。ire 目录是 Java 程序运行环境的根目录,它下面有 bin 子目录,包括平台所用工具和库的可执行文件和 DLL 文件:lib 子目录包括 java 运行环境的代码库。lib 目
23、录下都是库文件。demo 日录下有各种演小例子。include 目录下是 Win32 子目录,都是本地方法文件,选项 C 错误。3.下列关于线程优先级的说法中,正确的是( )。(分数:2.00)A.线程的优先级是不能改变的B.线程的优先级是在创建线程时设置的C.在创建线程后的任何时候都可以设置 D.B 和 C解析:解析 本题考查线程优先级的概念。首先应该了解 Java 的线程是有优先级的,并且可以控制其优先级,可以排除选项 A;选项 B 和选项 C 本身就矛盾,故选项 D 是错误的,B 和 C 不能同时选择。线程的优先级在创建线程时可以设置,也可以通过 getPriority()方法来获得线程
24、的优先级,通过 setPriority()方法来设定线程的优先级。线程的优先级属于考试重点内容,应该重点掌握。4.当检索一个压缩文件时,首先要建立压缩文件输入流对象,该对象( )。(分数:2.00)A.以选中的压缩文件为参数B.以 FilelnputStreard 对象为参数 C.以 InputStreamReader 对象为参数D.以 BufferedReader 对象为参数解析:解析 本题考查压缩文件流的概念。当输入一个 Zip 文件时要将 Zip 文件作为 FilelnputStream构造方法的参数,所以选项 B 正确。而 FilelnputStream 对象又作为 ZiplnputS
25、tream 构造方法的参数出现。这里的 ZiplnputStream 对象在将压缩文件内的输入项作为字符文本读出时即作为InputStreamReader 的构造方法参数出现。最后,InputStreamReader 对象作为 BufferedReader 的构造方法的参数,并且使用 readLine()方法将压缩文件输入项作为文本读山。5.下列代码中,将引起编译错误的行是( )。1)publicclassExercise2)publicstaticvoidmain(Stringargs)3)floatf=0.0;4)f+=1.0;5)6)(分数:2.00)A.第 2 行B.第 3 行 C.第
26、 4 行D.第 6 行解析:解析 本题考查 Java 中的数据类型。应该掌握 Java 中的简单数据类型,以及相关运算。floatf=O.O 这个语句,想要定义一个浮点型变量 f,并且初为值为 0.0,但由于 Java 认为如果数字后没竹任何字母,计算机默认为 double 类型,而从 double 是不能转换为 float 的,所以该语句错误,如果改为 floatf=0.0f,即可正确运行。6.能将程序补充完整的选项是( )。classPersonprivateinta;publicintchange(intm)returnm;publicclassTeacherextendsPersonp
27、ublicintb;publicstaticvoidmain(StringargDPersonp=newPerson();Teachert=newTeacher();inti;(分数:2.00)A.i=mB.i=bC.i=p.aD.i=p.change(50) 解析:解析 本题考查类的声明。选项 A 中 m 没有被声明过,不能使用:选项 B 中虽然 b 是类 Teacher的 public 成员变量,但在静态方法中,不能使用类中的非静态成员:选项 C 中 a 是类 Person 的 private成员,在类外不能直接引用;选项 D 中 change(Intm)方法是 public 方法,并且返
28、回一个 int 型值,可以通过类的实例变量 p 引用并赋值给一个 int 型变量。7.将一个容器 panell 放到容器 framel 中的方法是( )。(分数:2.00)A.framel.insert(panell)B.framel.add(panell) C.framel.addJPanel(panell)D.flamel.insertJPanel(panell)解析:解析 本题考查容器的嵌套。将个容器 panell 放到容器 frameI 中的方法和在容器亡添加部件足一样的,使用 add()方法即可。8.为了提高软件模块的独立性,模块之间最好是( )。(分数:2.00)A.控制耦合B.公
29、共耦合C.内容耦合D.数据耦合 解析:解析 耦合性与内聚性是模块独立性的两个定性标准,一般的程序设计都会尽量做到高内聚、低耦合,有利于提高模块的独立性。9.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指( )。(分数:2.00)A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对 解析:解析 数据独立性是数据库系统的一个最重要的目标之一,它使数据能独立于应用程序。数据独立性包括数据的物理独立性和逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。即数据在磁盘上怎样存储由 DBMS 管理,用
30、户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,即当数据的逻辑结构改变时,用户程序也可以不变。10.有下列二叉树,对此二叉树中序遍历的结果为( )。(分数:2.00)A.B.C.D. 解析:解析 二叉树的中序遍历是指先防问左子树,再访问树结点,最后访问右子树;当与访问下级左右子树时,也对照此 原则。所以 D 选项正确。11.用来实现 Java 虚拟机的语言是( )。(分数:2.00)A.JavaB.C C.C+D.汇编解析:解析 本题考查 Java 语言的虚拟机。Java 本身的编译
31、器用 Java 浯言编写,运行系统的虚拟机用C 语言实现。Java 语言的执行模式是半编译和半解释型,程序首先由编译器转换为标准字节代码,然后由Java 虚拟机去解释执行,字节代码实际上可以看作是虚拟机的机器代码。考生应当理解 Java 语言的实现机制,这属于考试重点。正确答案为选项 B。12.下列描述中正确的是( )。(分数:2.00)A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 D.软件工程只是解决软件开发过程中的技术问题解析:解析 软件工程是指将工程化的思想应用于软件的开发、应用和维护的过程,
32、包括软件开发技术和软件工程管理。13.下列对类的声明,正确的是( )。(分数:2.00)A.abstractfinalclassHhB.abstractprivatemove()C.protectedprivatenumber;D.publicabstractclassCar 解析:解析 本题考查类的声明。选项 A 错误,abstract 用来声明抽象类,final 用来声明最终类,这两个修饰词不能同时出现在类声明中:选项 B 错误,缺少 class 关键字;选项 C 错误,类不能声明为protected 和 private 属性,且不以“;”结尾也缺少 class 关键字:选项 D 正确,声
33、明了一个可以公有继承的抽象类。14.下列说法正确的是( )。(分数:2.00)A.类 FilelnputStream 和 FileOutputStream 用来进行文件 I/0 处理,由它们所提供的方法可以打开本地主机上的文件,并进行顺序的读/写 B.通过类 File 的实例或者一个表示文件名称的字符串可以生成文件输入/输出流,在流对象生成的同时,文件被打开,但还不能进行文件读/写C.对于 InputStream 和 OutputStream 来说,它们的实例都是是非顺序访问流,即只能进行顺序的读/写D.当从标准输入流读取数据时,从键盘输入的数据直接输入到程序中解析:解析 本题是考查对文件输入
34、、输出流的理解。通过类 File 的实例或者一个表示文件名称的字符串可以生成文件输入/输出流,在流对象生成的同时,文件被打开,然后就可以进行文件读/写,选项 B 说法错误。对于 InputStream 和 OutputStream 来说,它们的实例都是顺序访问流,即只能进行顺序的读/写,选项 C 说法错误。当从标准输入流读取数据时,从键盘输入的数据被缓冲,按回车键时,程序才会得到输入数据,选项 D 说法错误。15.为了向一个 Applet 传递参数,可以在 HTML 文件的 APPLET 标志中使用 PAPAM 选项。在 Applet 程序中获取参数时,应使用的方法是( )。(分数:2.00)
35、A.getParameter() B.getDocumentBase()C.getCodeBase()D.getlmage()解析:解析 本题考查考生对 Applet 获取参数的掌握。Applet 被下载时,在 Applet 的 init()方法中使用 getParameter()方法获取参数,所以选项 A 正确。而且要注意 getParameter()方法只能在 init()方法中。getParameter()方法的入口参数所取参数的名字,必须与param标记中的 name 指示的名字相同,这一点务必注意,返回值是参数的值。16.当启动 Applet 程序时,首先调用的方法是( )。(分数:
36、2.00)A.stop()B.init() C.start()D.destroy()解析:解析 本题考查 Applet 程序的运行方式。在 Applet 运行时,首先由浏览器调用 init()方法,所以选项 B 正确。初始化完成后,将调用 start()方法时 Applet 成为激活状态。当 Applet 被覆盖时,可用stop()方法停止线程。关闭浏览器时调用 destroy(),彻底终止 Applet,从内存中卸载并释放该 Applet的所有资源。Applet 的生命周期及其运行方式是考试重点,应该牢记。17.下列关于 JavaApplication 与 Applet 的说法中,正确的是(
37、 )。(分数:2.00)A.都包含 main()方法B.都通过“appletviewer”命令执行C.都通过“javac”命令编译 D.都嵌入在 HTML 文件中执行解析:解析 本题考查 JavaApplication 与 Applet 的区别。Applet 与 Application 的主要区别在执行方式上 Application 以 main()方法为入口点运行,Applet 要在浏览器或 appletviewer 中运行,运行过程比 Application 更复杂。两者都是通过“javac”命令编译,所以只有选项 C 说法正确。18.栈和队列的共同点是( )。(分数:2.00)A.都是先
38、进先出B.都是先进后出C.只允许在端点处插入和删除元素 D.没有共同特点解析:解析 栈是只允许在表的一端进行插入和删除的操作,队列是允许在表的一端进行插入,另一端进行删除的操作19.数据的存储结构是指( )。(分数:2.00)A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示 解析:解析 数据的存储结构是指数据结构(数据的逻辑结构)在计算机中的表示,又称物理结构。数据的存储结构主要有两种:顺序存储结构和链式存储结构。20.文件操作中,用于移动文件指针到指定的位置的是( )。(分数:2.00)A.seek(longpos) B.len
39、gh()C.find()D.skipBytes(intn)解析:解析 本题考查文件操作。seek(longpos)是随机文件记录的查找,满足题意。lengh()方法是求随机文件字节长度的方法,不符合题意:Java 中没有 find()方法;skipBytes(int n)方法是使随机文件访问跳过指定字节,不符合题意。21.下列程序实现对 ZIP 文件 file.zip 的检索,在横线处填入正确的语句( )。packagetest;importjava.io.*;importjava.util.*;importjava.util.zip.*;publicclassExampublicstatic
40、voidmain(Stringargs)tryFilelnputStream zis=rlewFilelnputStream(“test/filezip“);ZiplnputStreamzis=newZiplnputStream(ns);ZipEntryen;while(_)!=null)en.getName();zis.closeEntry();zis.close();catch(Exceptione)e.printStackTrace();(分数:2.00)A.en=zis.getNextEntry() B.en=zis.getNextEntry()C.en=zis.getEntry()D
41、.zis.getNextEntry()解析:解析 本题考查 Java 类实现 zip 数据压缩方式。zip 压缩文件结构:一个 ztp 文件由多个 entry组成,每个 entry 有一个惟一的名称,entry 的数据项存储压缩数据。ZiplnputStream 实现了 zip 压缩文件的读输入流,支持压缩和非压缩 entry。题日程序中 FilelnputStream tis=new FilelnputStream(“test/file.zip“)构造了一个文件输入流,ZiplnputStream ms=new ZiplnputStream(ns)语句利用文件输入流 ns 构造了一个 ZIP
42、 输入流,zis.getNextEntry()语句返回 ZIP文件中的下一个 entry,并将输出流定位在此 entry 数据项的起始位置。22.下列叙述中正确的是( )。(分数:2.00)A.在面向对象的程序设计中,各个对象之间具有密切的关系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之问相对独立,相互依赖性小 D.上述 3 种说法都不对解析:解析 面向对象的程序设计是用对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。23.下列选项默认的布局管理器不是 BorderLayout 的是( )。(分数:2.00)
43、A.WindowB.Panel C.FrameD.Dialog解析:解析 本题考查 Java 中的布局管理器。Panel 和 Applet 默认的布局管理器是 FlowLayout,构件在容器中放置规律足从上到下、从左到右进行放置:BorderLayout 是 Window、Frame 和 Dialog 的默认布局管理器,在 BorderLayout 布局管理器中构件分成 5 个区域 North、South、East、West 和 Center,每个区域只能放置一个构件。考生应注意区分各个布局管理器的区别和联系,各个布局管理器的特点。24.对于长度为 n 的线性表,在最坏情况下,下列各排序法所
44、对应的比较次数中正确的足( )。(分数:2.00)A.冒泡排序 n/2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1)/2 解析:解析 冒泡排序法首先将第一个记录的关键字与第二个记录的关键字进行比较,若逆序则交换,然后比较第二个与第三个,以此类推,直至第 n-1 个与第 n 个记录的关键字进行比较。在最坏情况下,冒泡排序中,若初始序列为“逆序”序列需要比较 n(n-1)/2 次。快速排序是对通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字比另部分记录的关键字小,然后分别对这两部分记录继续进行排序,最终达到整个记录有序。最坏情况下比较次数为 n(n-1)/2。25
45、.下列有关 Java 语言的叙述中,正确的是( )。(分数:2.00)A.可以有 2 个以上 package 语句B.可以有 2 个以上 import 语句 C.可以有 2 个以上 public 类D.只能有 1 个类定义解析:解析 本题考查考生对 Java 语言概念的理解。属于考试重点内容,考生应注意理解这些基本概念。考生应该明确 Java 语言中可以有 package 语句,用来指定源文件存入所指定的包中,只能有 0 或 1 个,所以选项 A 说法错误:可以有 0 或多个以上 import 语句,但必须在所有类定义之前引入标准类,所以选项 B 说法正确;源文件中最多只能有一个 public
46、 类,其他类的个数不限,所以选项 C 和选项 D 说法错误。26.下列关于 Java 多线程并发控制机制的叙述中,错误的是( )。(分数:2.00)A.Java 中对共享数据操作的并发控制是采用加锁技术B.线程之间的交互,提倡采用 suspend()/resume()方法 C.共享数据的访问权限都必须定义为 pdvateD.Java 中没有提供检测与避免死锁的专门机制,但应用程序员可以采用某些策略防止死锁的发生解析:解析 本题考查多线程的并发控制机制。Java 中对共享数据操作的并发控制采用传统的封锁技术,也就是给对象加锁,选项 A 说法正确。线程之间的交互,提倡采用 wait()和 noti
47、fy()方法,这两个方法是 java.lang.object 类的方法,是实现线程通信的两个方法,不提倡使用 suspend()和 resume()方法,它们容易造成死锁,所以选项 B 说法错误。共享数据的访问权限都必须定义为 private,不能为 public或其他,选项 C 说法正确。Java 中没有提供检测与避免死锁的专门机制,因此完全由程序进行控制,应用程序员可以采用某些策略防止死锁的发生,选项 D 说法正确。27.下列方法中可以用来创建一个新线程的是( )。(分数:2.00)A.实现 java.lang.Runnable 接口并重写 start()方法B.实现 java.lang.
48、Runnable 接口并重写 run()方法C.继承 java.lang.Thread 类并重写 run()方法 D.实现 java.lang.Thread 类并实现 start()方法解析:解析 本题考查考生对创建线程的使用。创建线程有两种方法:通过实现 Runnable 接口创建线程和通过继承 Thread 类创建线程。通过实现 Runnable 接口创建线程,当实现 Runnable 接凹的类的对象用来创建线程以后,该线程的启动将使得对象的 run()方法被调用。通过继承 Thread 类创建线程,可以通过继承 Thread 类,并重写其中的 run()方法定义线程体,然后创建该子类的对象创建线程。线程创建足考试重点内容,务必掌握。28.下列关于 Java 安全性的说法正确的是( )。(分数:2.00)A.有严格的访问权限检查B.对程序执行前要检查 C.不允许使用指针D.可防止对内存的非法入侵解析:解析 本题考查 Java 的安全性特点。面向网络、分布式的 Java 语言,对非法入侵的防范是非常重要的,Java 语言提供充分的安全