1、二级 JAVA笔试-268 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:25,分数:75.00)1.下列_方法属于 MouseMotionListener接口中的方法。(分数:3.00)A.mouseExited(MouseEvent)B.mouseEntered(MouseEvent)C.mouseMoved(MouseEvent)D.mousePressed(MouseEvent)2.下列_情况一定不会使当前的线程暂停执行。(分数:3.00)A.该线程调用 sleep()方法B.该线程抛出一个 IntermptedExceptionC.该线程创建一个新的子线程
2、D.该线程从输入流读取文件数据3.下列说法中错误的一项是_。(分数:3.00)A.构件是一个可视化的、能与用户在屏幕上交互的对象B.构件能够独立显示出来C.一个按钮可以是一个构件D.构件必须放在某个容器中才能正确显示4.下列语句序列执行后,k 的值是_。int x=10,y=30;doy-=x;X+;while(x+y-);(分数:3.00)A.0次B.1次C.2次D.3次5.Applet可以做下列哪些操作_。(分数:3.00)A.读取客户端文件B.在客户端主机上创建新文件C.在客户端装载程序库D.读取客户端部分系统变量6.下列选项中,_不属于 Java语言的简单数据类型。(分数:3.00)A
3、.整数型B.数组C.浮点型D.字符型7.Java语言具有多种优点和特点,下列选项中,_反映了 Java程序并行执行机制的特点。(分数:3.00)A.多线程B.健壮性C.安全性D.面向对象8.下列程序的执行结果是_。class T5 implements Runnablepublic void run()int i = 0;While(i2)Thread t = Thread.currentThread();System.out.println(i + t.getName();i+public class Testl6public static void main(String args)Thr
4、ead t1 = new Thread(new T5(), “TS“);t1.start ();Thread t = Thread.currentThread();for(int i = 0; i3; i+)System.out.println(I + t.getName();if(i = 1 (分数:3.00)A.Omain lmam 0T5 1T5 2mainB.Omainlmam2mainC.Omain lmain2main0T51T5D.Omainlmain0T51T59.下列_方法使用了 Graphics类的实例作为参数。(分数:3.00)A.init()B.repaint()C.d
5、rawBytes()D.update()10.下列_关键字通常用来对对象进行加锁,该标记使得对对象的访问是排他的。(分数:3.00)A.serializeB.transientC.synchronizedD.static11.下列语句序列执行后,k 的值是_。public class Testllpublic static void main(String args)int a=10, b=18, c=30;switch(b%a)case 7: c-;break;case 8: c-=2;break;case 9: c-=3;break;default: c * =b;break;System
6、.out.println(c);(分数:3.00)A.28B.27C.29D.54012.下列选项中,不属于 Java语言安全机制的一项是_。(分数:3.00)A.不允许使用指针B.语法检查C.代码参数类型合法性检查D.对内存进行跟踪13.面向对象程序设计有许多特性,下列选项中,_不是面向程序设计的特性。(分数:3.00)A.多态性B.静态性C.封装性D.继承14.下列_命令是在当前主机的指定端口上启动远程对象注册服务程序。(分数:3.00)A.rmicB.rmiregistryC.serialverD.rmid15.阅读下列代码段,选出该代码段正确的文件名_。class Avoid meth
7、odl()System.out.println(“methodl in class A“);public class Bvoid method2()System.out.println(“method2 in class B“);public static void main(String args)System.out.println(“main() in class B“);(分数:3.00)A.A.classB.A.javaC.B.classD.B.java16.当创建 Java Applet且第一次使用支持 Java的浏览器载入时,就会执行_方法。(分数:3.00)A.init()B.
8、start()C.paint()D.stop()17.下列 InputStream类中_方法可以用于关闭流。(分数:3.00)A.mark()B.close()C.skip()D.resetO18.下列语句中,不正确的一个是_。(分数:3.00)A.floate=1.1f;B.charf=-1.1f;C.doubleg=1.1f;D.byteh=1;19._Java类库包含可单击按钮的类。(分数:3.00)A.SwingB.AWTC.AWT和 Swing都有D.AWT和 Swmg都没有20.关于数组,下列说法中不正确的是_。(分数:3.00)A.数组的元素可以是值(基本数据类型)、对象或其他数
9、组B.数组是最简单的复合数据类型,是一系列数据的集合C.定义数组时,必须分配内存D.一个数组中的所有值必须是相同的类型21.Applet不能继承_类的方法。(分数:3.00)A.ComainerB.ComponentC.PanelD.Window22.给出下面程序的代码:byte array1, array2;byte array3 ;byte array4;下面数组操作语句中_是不正确。(分数:3.00)A.array2=array1;B.array2=array3;C.array3=array4;D.array2=array4;23.Java中,现成的 Java类库被称为_。(分数:3.0
10、0)A.MapB.JavaAPIC.classD.Object24.关于对象串行化,下列叙述正确的是_。(分数:3.00)A.被储存和还原的对象如果引用了其他对象,这些对象不须同时存储和还原B.串行化只能保存对象的非静态成员变量C.串行化只能保存成员方法和静态的成员变量D.串行化保存变量的任何修饰符25.执行下列程序段这后,变量 n的值为_。public class Test8public static void main(String argsint y=2;int z=3;int n=4;n=n+-y*z/n;System. out.println (n);(分数:3.00)A.3B.-1
11、C.-3D.-12二、填空题(总题数:10,分数:25.00)26.在进行 Java程序开发时,可以使用 【1】 来辅助编程。(分数:2.50)填空项 1:_27.对象的两大要素是数据和 【2】 。(分数:2.50)填空项 1:_28.在 Java语言中,byte 类型的数据能表示的数据范围是 【3】 。(分数:2.50)填空项 1:_29.当方法有返回值时,必须在该方法体内使用 【4】 语句。(分数:2.50)填空项 1:_30.一个 try代码段后面必须跟着若干个 catch代码段或者一个 【5】 代码段。(分数:2.50)填空项 1:_31.欲使当前线程休眠一段时间,然后恢复运行,须调用
12、 【6】 方法。(分数:2.50)填空项 1:_32.通过继承 Thread创建线程,在主控程序中同时运行两个线程 Thread1和 Thread2。请在下面横线处填入代码完成此程序。public class ThreadTestpublic static void main(String args)new TestThread(“Threadl“).start();【7】 class TestThread extends Thread()public TestThread(String str)super (str);public void run()for(int i = 0; i5; i
13、+)System.out.println(i + + getName() + “在运行“);trySleep(1000);catch(InerruptedException e) System.out.println(getName() + “已结束“);(分数:2.50)填空项 1:_33.为了实现线程之间的通信,java1angObject 提供了两个方法,即 wait()和 【8】 。(分数:2.50)填空项 1:_34.Java的 Swing包中定义了两种构件:顶层容器和 【9】 。(分数:2.50)填空项 1:_35.appletviewer仅仅是一个小应用程序观察器,只支持 obj
14、ect、embed 或 【10】 标记。(分数:2.50)填空项 1:_二级 JAVA笔试-268 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:25,分数:75.00)1.下列_方法属于 MouseMotionListener接口中的方法。(分数:3.00)A.mouseExited(MouseEvent)B.mouseEntered(MouseEvent)C.mouseMoved(MouseEvent) D.mousePressed(MouseEvent)解析:解析 MouseMotionListener 接口实现对鼠标移动事件的监听,因此包括 2个方法: mou
15、se Moved(MouseEvent)和 mouse Dragged(MouseEvent)。2.下列_情况一定不会使当前的线程暂停执行。(分数:3.00)A.该线程调用 sleep()方法B.该线程抛出一个 IntermptedExceptionC.该线程创建一个新的子线程 D.该线程从输入流读取文件数据解析:解析 当新线程被创建时,只是使它变为可运行状态而已,并不能使当前线程停止执行。当从输入流读取文件数据时,它与输入输出打交道,可能造成线程的暂停执行。3.下列说法中错误的一项是_。(分数:3.00)A.构件是一个可视化的、能与用户在屏幕上交互的对象B.构件能够独立显示出来 C.一个按钮
16、可以是一个构件D.构件必须放在某个容器中才能正确显示解析:解析 构件是 Java图形用户界面程序设计的基本组成部分,构件不可以独立显示,必须在一定的容器中构件才能正确显示。 。4.下列语句序列执行后,k 的值是_。int x=10,y=30;doy-=x;X+;while(x+y-);(分数:3.00)A.0次B.1次C.2次 D.3次解析:解析 题目中的循环为“直到型”循环,至少做 1次,选项 A可以被排除;程序首先执行循环体,得到 x=11,y=20,然后计算终止条件值为 true,而 x和 y的值分别改变为 12和 19:接着进行第二次循环,执行循环体,得到 x=13,y=7,然后计算终
17、止条件值为 false,退出循环,因此执行了 2次循环,答案为选项 C。5.Applet可以做下列哪些操作_。(分数:3.00)A.读取客户端文件B.在客户端主机上创建新文件C.在客户端装载程序库D.读取客户端部分系统变量 解析:解析 大多数浏览器都会禁止 Applet执行下列操作:它们不能读写用户的文件系统,因此选项 A和 B是错误的,它们不能加载存储在用户系统上的程序,因此选项 C是错误的,选项 D是正确的。6.下列选项中,_不属于 Java语言的简单数据类型。(分数:3.00)A.整数型B.数组 C.浮点型D.字符型解析:解析 数组应该属于复合类型,在复合类型中,还有两类重要的数据类型:
18、类和接口。7.Java语言具有多种优点和特点,下列选项中,_反映了 Java程序并行执行机制的特点。(分数:3.00)A.多线程 B.健壮性C.安全性D.面向对象解析:解析 选项 A,Java 的多线程特点使得应用程序可以同时进行不同的操作,处理不同的事件,反映出 Java程序并行执行机制的特点。8.下列程序的执行结果是_。class T5 implements Runnablepublic void run()int i = 0;While(i2)Thread t = Thread.currentThread();System.out.println(i + t.getName();i+pu
19、blic class Testl6public static void main(String args)Thread t1 = new Thread(new T5(), “TS“);t1.start ();Thread t = Thread.currentThread();for(int i = 0; i3; i+)System.out.println(I + t.getName();if(i = 1 (分数:3.00)A.Omain lmam 0T5 1T5 2main B.Omainlmam2mainC.Omain lmain2main0T51T5D.Omainlmain0T51T5解析
20、:解析 本程序首先创建一个名称为“T5”的线程 t1,然后调用 ThreadcurrentThread()方法得到 main()方法的线程 t,在循环中打印出 t的名称,再判断如果 t1还活着,就执行 tyield(), main()方法让出 CPU,t1 获得运行的机会,并执行 t1的循环,输出 2行包含 n名字的字符串, t1 执行完毕,回到 main()方法中,线程 main继续执行,输出最后一行字符串。9.下列_方法使用了 Graphics类的实例作为参数。(分数:3.00)A.init()B.repaint()C.drawBytes()D.update() 解析:解析 update(
21、)和 paint()方法都使用 Graphics类的实例作为参数,实现绘图的操作。10.下列_关键字通常用来对对象进行加锁,该标记使得对对象的访问是排他的。(分数:3.00)A.serializeB.transientC.synchronized D.static解析:解析 用 synchronized关键字实现对对象的加锁及其操作,用 synchronized生命的方法为同步方法。带有由 synchronized标记的临界区,实现对并发操作的多个线程进行控制。11.下列语句序列执行后,k 的值是_。public class Testllpublic static void main(Stri
22、ng args)int a=10, b=18, c=30;switch(b%a)case 7: c-;break;case 8: c-=2;break;case 9: c-=3;break;default: c * =b;break;System.out.println(c);(分数:3.00)A.28 B.27C.29D.540解析:解析 程序由 switch语句构成,当 b%a的值为 8时,变量 c减 2,得到 28,由于每个 case字句块都由 break语句结束,因此跳出 switch语句,最后 c的值就是 28。12.下列选项中,不属于 Java语言安全机制的一项是_。(分数:3.0
23、0)A.不允许使用指针B.语法检查C.代码参数类型合法性检查D.对内存进行跟踪 解析:解析 选项 A错误,不允许使用指针,可以防止对内存的非法访问,属于安全机制;选项 B错误,语法检查是在编译 Java程序时的代码安全检查,属于安全机制;选项 C错误,代码参数类型的合法性是在解释执行 Java程序时进行检测的,也属于安全机制:选项 D正确,对内存进行跟踪属于 Java垃圾回收机制,不属于安全机制。13.面向对象程序设计有许多特性,下列选项中,_不是面向程序设计的特性。(分数:3.00)A.多态性B.静态性 C.封装性D.继承解析:解析 选项 A、C 和 D的说法正确,面向对象是一种认识世界的方
24、法,也是一种程序设计的方法。面向对象思想以对象为中心进行程序设计,具有抽象、封装、继承和多态性等特点。选项 B 的说法错误,面向对象用于不断发展的环境中,它能包含新的功能,因而必须是动态的。14.下列_命令是在当前主机的指定端口上启动远程对象注册服务程序。(分数:3.00)A.rmicB.rmiregistry C.serialverD.rmid解析:解析 此题主要考查 RMI命令,RMI 命令包括 rmic命令,为对象生成 stub和 skeleton: rmiregistry命令在当前主机的指定端口上启动远程对象注册服务程序:serialver 命令,返回 serialVersionUID
25、;rmid 命令,激活系统守候进程。15.阅读下列代码段,选出该代码段正确的文件名_。class Avoid methodl()System.out.println(“methodl in class A“);public class Bvoid method2()System.out.println(“method2 in class B“);public static void main(String args)System.out.println(“main() in class B“);(分数:3.00)A.A.classB.A.javaC.B.classD.B.java 解析:解析
26、Java 源文件以 java为后缀,Java 字节码文件以class 为后缀,而且 Java源文件只有一个 public的类,该类的名字为源文件名,这里类 B是以 public修饰的,因此源文件名为 Bjava,正确答案应该是选项 D。16.当创建 Java Applet且第一次使用支持 Java的浏览器载入时,就会执行_方法。(分数:3.00)A.init() B.start()C.paint()D.stop()解析:解析 当创建 Applet且第一次使用支持 Java的浏览器载入时,就会执行 init()方法。选项 A 正确。17.下列 InputStream类中_方法可以用于关闭流。(分
27、数:3.00)A.mark()B.close() C.skip()D.resetO解析:解析 mark()可以在流中标记一个位置,skip()可以跳过流中若干字节流,reset()可以返回标记过的位置。18.下列语句中,不正确的一个是_。(分数:3.00)A.floate=1.1f;B.charf=-1.1f; C.doubleg=1.1f;D.byteh=1;解析:解析 float 类型的数据 1.1f可以被自动转换为 double类型数据;byte 类型数据的声明是正确的;float 类型的数据不可以自动转换为 char类型数据。19._Java类库包含可单击按钮的类。(分数:3.00)A
28、.SwingB.AWTC.AWT和 Swing都有 D.AWT和 Swmg都没有解析:解析 AWT 中的 Button类和 Swing中的 JButton类都是可单击按钮类,因此选项 C是正确的。 20.关于数组,下列说法中不正确的是_。(分数:3.00)A.数组的元素可以是值(基本数据类型)、对象或其他数组B.数组是最简单的复合数据类型,是一系列数据的集合C.定义数组时,必须分配内存 D.一个数组中的所有值必须是相同的类型解析:解析 定义数组时,并不分配内存,所以不要求给出数组元素的个数,而是到使用的时候才决定数组的大小。21.Applet不能继承_类的方法。(分数:3.00)A.Comai
29、nerB.ComponentC.PanelD.Window 解析:解析 Applet 是 Panel的直接子类,而 Panel的直接父类是 Container,Container 的父类是 Component,因此可以继承这 3个类。22.给出下面程序的代码:byte array1, array2;byte array3 ;byte array4;下面数组操作语句中_是不正确。(分数:3.00)A.array2=array1; B.array2=array3;C.array3=array4;D.array2=array4;解析:解析 此题考查二维数组的定义,其中 arrayl为一维数组,其余的
30、为二维数组,选项 A中,将一维数组的值赋给二维数组,出现错误。23.Java中,现成的 Java类库被称为_。(分数:3.00)A.MapB.JavaAPI C.classD.Object解析:解析 开发工具 JDK给出了一套标准的类库,即 Java API,这些类库为大部分所声的编程任务提供了现成的方法和接口。24.关于对象串行化,下列叙述正确的是_。(分数:3.00)A.被储存和还原的对象如果引用了其他对象,这些对象不须同时存储和还原B.串行化只能保存对象的非静态成员变量 C.串行化只能保存成员方法和静态的成员变量D.串行化保存变量的任何修饰符解析:解析 对象通过写出描述自己状态的数值来记
31、录自己的过程称为对象的串行化。在被存储和还原的对象引用到其他的对象时,这些对象必须也能被同时存储和还原,以保证对象之间的关系。即如果变量是另一个对象的引用,则引用的对象也要串行化,所以选项 A错误。串行化只能保存对象的非静态成员变量,不能保存成员方法和静态的成员变量,而且串行化只保存非静态成员变量的值,不保存变量的任何修饰符,所以选项 C和 D错误。此外,对于 transient 类型的变量,串行化也不保存对应的值。25.执行下列程序段这后,变量 n的值为_。public class Test8public static void main(String argsint y=2;int z=3
32、;int n=4;n=n+-y*z/n;System. out.println (n);(分数:3.00)A.3 B.-1C.-3D.-12解析:解析 程序段的 main()方法中的前 3行是基本的赋值语句,第 4行是算术运算语句,该语句执行过程是:首先对 y取负值,得到-2,然后乘以 z得到-6,再除以 n得到-1,最后和 n做加法得到 3,从而根据赋值运算将 3赋给变量 n。二、填空题(总题数:10,分数:25.00)26.在进行 Java程序开发时,可以使用 【1】 来辅助编程。(分数:2.50)填空项 1:_ (正确答案:JavaAPI 文档)解析:解析 API 文档是 Java程序开
33、发的好帮手,在编程时,随时可以查阅此文档,通过它提供的对所有类信息的超链接,能够得到有关类和类的一般目的描述、成员变量列表、构造方法列表、方法详细列表及描述等信息。27.对象的两大要素是数据和 【2】 。(分数:2.50)填空项 1:_ (正确答案:方法)解析:解析 “对象”就是一组成员变量和相关方法的集合,对象通过成员变量来维持其状态,通过方法实现其行为。成员变量是一种有名称的数据实体,而方法则是和对象相关的函数或过程。一个对象的变量构成这个对象的核心,方法包围着变量。28.在 Java语言中,byte 类型的数据能表示的数据范围是 【3】 。(分数:2.50)填空项 1:_ (正确答案:-
34、128127)解析:解析 由于 byte类型数据占计算机存储的 8位,并且是有符号整型,第 1位用于表示符号,剩下还有 7位用做存储数据,因此正整数最大应该是 27_1=127,而负整数最小应该是 -2(上标)7;-128,这样总共表示的数的个数应该是 2(上标)8-1=255 个。29.当方法有返回值时,必须在该方法体内使用 【4】 语句。(分数:2.50)填空项 1:_ (正确答案:return)解析:解析 有返回值的方法,必须在方法体内通过 return语句返回该返回值,否则编译出错。30.一个 try代码段后面必须跟着若干个 catch代码段或者一个 【5】 代码段。(分数:2.50)
35、填空项 1:_ (正确答案:finally)解析:解析 根据 try-catch-fmally结构,try 后面是若干个 catch,再后面是一个 finally代码段,可以没有 catch或者没有 finally,但是这两者必须有一个。31.欲使当前线程休眠一段时间,然后恢复运行,须调用 【6】 方法。(分数:2.50)填空项 1:_ (正确答案:sleep())解析:解析 在线程调度的方法中,sleep()方法可使当前线程睡眠若干毫秒,即停止执行若干毫秒,此时线程由于逆行状态进入不可运行状态,睡眠时间过后再进入可运行状态。32.通过继承 Thread创建线程,在主控程序中同时运行两个线程
36、Thread1和 Thread2。请在下面横线处填入代码完成此程序。public class ThreadTestpublic static void main(String args)new TestThread(“Threadl“).start();【7】 class TestThread extends Thread()public TestThread(String str)super (str);public void run()for(int i = 0; i5; i+)System.out.println(i + + getName() + “在运行“);trySleep(100
37、0);catch(InerruptedException e) System.out.println(getName() + “已结束“);(分数:2.50)填空项 1:_ (正确答案:new TestThread(“Thread2”)start();)解析:解析 程序中,类 ThreadTest的 main方法中生成了两个 TestThread类的线程对象 Thread1和Thread2,并在创建后马上调用 start方法启动这两个线程。类 TestThread是类 Thread的子类,它首先定义了一个构造方法,调用父类的构造方法为线程对象命名。由于类 Thread创建的线程不做任何事情(它
38、的 run()方法是空的),所以对于继承子类 Thread的子类来说,必须重写 run()方法。本例中,类TestThread中的第二个方法就是 run()方法,它重写了类 Thread中的 run()方法。run()方法中是一个 3次的循环,每次循环中,显示循环的次数和当前正在运行的线程的名字,然后休眠 1000毫秒。运行程序的结果是两个线程的名字交替显示,每一个线程运行到输出语句时,将在屏幕上显示自己的名字,执行到sleep语句时将休眠 1000毫秒。线程休眠时,并不占用 CPU,其他线程可以继续运行。一旦延时完毕,线程将被唤醒,继续执行下面的语句。这样,就实现了交替显示。在循环结束后,显
39、示“已结束”及线程表。33.为了实现线程之间的通信,java1angObject 提供了两个方法,即 wait()和 【8】 。(分数:2.50)填空项 1:_ (正确答案:notify())解析:解析 wait()和 notify()方法提供了线程之间同步和通信的机制。34.Java的 Swing包中定义了两种构件:顶层容器和 【9】 。(分数:2.50)填空项 1:_ (正确答案:轻量级构件)解析:解析 Java 的 Swing包中包含很多接口和类,这里面又分为顶层容器和轻量级构件。35.appletviewer仅仅是一个小应用程序观察器,只支持 object、embed 或 【10】 标记。(分数:2.50)填空项 1:_ (正确答案:applet)解析:解析 appletviewer 仅仅是一个小应用程序观察器,只支持 object、embed 或 applet标记。