1、二级 JAVA笔试-248 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:25,分数:75.00)1.Java语言和 C+语言相比,_是 Java有的,而 C+没有。(分数:3.00)A.面向对象B.动态链接C.有类库D.跨平台2.下列程序的运行结果是_。class A implements Runnableint a;iht i = 2;A(int x)a = x;public void run()while(i 0)System.out.println(“线程“ + a);i-;public class Testl3public static void main
2、(String args)Thread a1 = new Thread(new A(1);Thread a2 = new Thread(new A(2);a1.start();a2.start();(分数:3.00)A.线程 1 线程 1线程 2 线程 2B.线程 1线程 2C.线程 1线程 2线程 1线程 2D.线程 1线程 1线程 1线程 13.在同一个浏览器中,当用户离开 Applet所在的页面,而转到另一个页面时,Applet 将会_。(分数:3.00)A.继续运行B.挂起C.停止运行D.生成一个后台线程4.对于构造方法,下列叙述正确的是_。(分数:3.00)A.构造方法是类的一种特殊
3、方法,它的方法名可以任意取B.构造方法的返回类型只能是 void型C.类中必须定义构造方法D.如果类中定义了构造方法,系统就不再提供默认构造方法5.下列有关 Java源代码文件三要素的说法正确的是_。(分数:3.00)A.可以有多个包声明语句B.只能有 1个引入类声明语句C.只能有一个可见性为 public的类,且要求源文件名必须与 public类名相同D.包声明、引入类声明、类和接口的声明这三者的顺序可以任意6.下列选项_不是 PilterInputStream的子类。(分数:3.00)A.BufferedInputStreamB.CheckedInputStreamC.Pushbackln
4、loutStreamD.FilelnputStream7.在编写 Java程序的时候,如果不为类的成员变量定义初始值,Java 会给它们默认值,下列说法中不正确的一个是_。(分数:3.00)A.int的默认值是 0B.byte的默认值是 0C.long的默认值是 0.0LD.float的默认值是 0.0f8.在 Java开发工具 JDK的目录结构中,包含 JDK的一些可执行文件的目录是_。(分数:3.00)A.binB.docsC.libD.demo9.下面程序执行后,baz 的值应是_。public class Test9public static void main(String args
5、)int index = 1;int fox = new int 3;iht bar = fox index;int baz = bar + index;System.out.println(baz);(分数:3.00)A.0B.1C.2D.编译错误10.定义类头时能使用的修饰符是_。(分数:3.00)A.staticB.privateC.protectedD.abstract11.按照运算符的功能划分,运算符|属于_。(分数:3.00)A.关系运算符B.位运算符C.布尔逻辑运算符D.扩展赋值运算符12.下列程序的运行结果是_。Class C14 implements Runnablepriv
6、ate int i;public C14(int n)this.i = n;public void run)tryThread.currentThread().sleep(i);catch(InterruptedException ie)System.err.println(ie.tString();System. out.println(“线程“ + Thread.currentThread() .getName+ “睡眠了“ + i + “毫秒结束“);public class Testl4public static void main(String args)Thread t = new
7、 Thread(new C14(300), “t“);t.start();(分数:3.00)A.线程 t睡眠了 300毫秒结束B.线程 Thread-0睡眠了 300毫秒结束C.线程 t睡眠了 i毫秒结束D.线程 Thread-0睡眠了 i毫秒结束13.关于 J2SDK的基本命令,下列叙述正确的是_。(分数:3.00)A.javac是 Java语言的解释器,解释运行 Java字节码B.java doc是 JavaAPl文档生成器C.java是 Java语言的编译器D.javah是 Java类文件解析器,用于解析类文件14.下列关于 equals()方法和=运算符的说法,不正确的一个是_。(分数
8、:3.00)A.equals()方法可以用来比较复合数据类型的数值是否相等B.=运算符可以用来比较简单数据类型的数据值是否相等C.运算符和 equals()方法的功能一样,可以相互替换D.运算符和 equals()方法的功能不完全一样,不可以相互替换15.下面程序执行后,输出的值应是_。public classs Test10public static void main(String args)float a=5, b=4, c=3;if ( -a=b )c=-a/c;System.out.println(c);(分数:3.00)A.1.33B.1.0C.0.0D.1.6716.下面说法正确
9、的是_。(分数:3.00)A.Java Applet是可以在操作系统的支持下独立运行的一种 Java小应用程序B.Java Applet是一种 Java小应用程序,它跟 Java Application没有什么区别C.Java Applet是一种 Java小应用程序,但它必须嵌入到 HTML文件中运行D.Java Applet是一种小的 Java Application,它有自己的 main()方法17.关于集合,下列叙述错误的是_。(分数:3.00)A.集合中的对象称为它的元素B.一个集合是代表一组对象的一个对象C.集合主要用于处理各种类型的对象的聚集D.集合包含四个重要接口:Collect
10、ion、Set、List、Map18.实现下列_接口可以对 TextField对象的事件进行监听和处理。(分数:3.00)A.ActionListenerB.WindowListenerC.MouseMotionListenerD.FocusListener19.创建线程有两种方法,一种是继承线程类 Thread,另一种是_。(分数:3.00)A.建立实现 Runnable接口的类B.直接创建线程即可,无需实现任何接口C.建立实现 Collection接口的类D.建立实现 Thread接口的类20.SQL语言本身并不是一个很完整的编程语言,一般需要和其他编程语言结合起来使用,_就是一个将 Ja
11、va语言与 SQL结合起来的编程接口。(分数:3.00)A.JDBCB.JNDIC.RMID.EJB21.Applet的运行过程要经历 4个步骤,其中_不是运行步骤。(分数:3.00)A.浏览器加载指定 URL中的 HTML文件B.浏览器显示 HTML文件C.浏览器加载 HTML文件中指定的 Applet类D.浏览器中的 Java运行环境运行该 Applet22.当用户关闭浏览器时,系统就会调用_方法。(分数:3.00)A.start()B.init()C.paint()D.destroy()23.下列_不属于 AWT提供的图形图像工具。(分数:3.00)A.形状B.按钮C.字体D.颜色24.
12、下列常见的系统定义的异常中,_是输入、输出异常。(分数:3.00)A.ClassNotFoundExceptionB.IOEXCeptionC.FileNOtFoundExceptionD.UnknownHostEXception25.下列说法中错误的一项是_。(分数:3.00)A.采用 BorderLayout布局管理,添加构件的时候需要在 add()方法中说明添加到哪一个区域B.采用 BorderLayout布局管理时,每一个区域只能且必须放一个构件C.采用 BorderLayout布局管理时,不一定要所有的区域都有构件D.采用 BorderLayout布局管理,容器大小发生变化时,构件之
13、间的相对位置不变,构件大小改变二、填空题(总题数:10,分数:25.00)26.如果一个 Java Applet源程序文件中只定义了一个类,该类的类名为 My Applet,则存储该源程序文件的文件名应为 【1】 。(分数:2.50)填空项 1:_27.创建一个名为 MyPackage的包的语句是 【2】 。(分数:2.50)填空项 1:_28.表达式 424 的值为 【3】 。(分数:2.50)填空项 1:_29.字符串分为两大类,一类是字符串常量,使用 String类的对象表示,另一类是字符串变量,使用 【4】 类的对象表示。(分数:2.50)填空项 1:_30.一个类要使其对象可以被串行
14、化,它必须实现 【5】 接口。(分数:2.50)填空项 1:_31.程序中可能出现一种情况:多个线程互相等待对方持有的锁,而且得到对方的锁之前都不会释放自己的锁,这就是 【6】 。(分数:2.50)填空项 1:_32. 【7】 布局管理器将组件一排一排地依次放置,它是 Panel和 Applet容器地默认布局管理器。(分数:2.50)填空项 1:_33.从 Component类派生出来的 【8】 类用于表示 GUI中的容器,该类具有的功能是组件管理和布局管理。(分数:2.50)填空项 1:_34. 【9】 方法用于更新图形。它首先清除背景,然后设置前景,再调用 paint()方法完成组件中的具
15、体绘图。(分数:2.50)填空项 1:_35.Applet生命周期包括 Applet的创建、运行和 【10】 几个状态。(分数:2.50)填空项 1:_二级 JAVA笔试-248 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:25,分数:75.00)1.Java语言和 C+语言相比,_是 Java有的,而 C+没有。(分数:3.00)A.面向对象B.动态链接C.有类库D.跨平台 解析:解析 选项 A中,因为 C什和 Java都是面向对象的程序设计语言;选项 B中,C+语言中也有动态链接技术,库文件(.DLL)就是 C+的动态链接库;选项 C错误,这两种语言都有类库,因
16、为类是面向对象的最基本的概念;选项 D中,跨平台的特性是 Java语言所特有的,在不同的操作系统上,只要装有JVM就可以执行 Java程序,而 C+没有这种特性。2.下列程序的运行结果是_。class A implements Runnableint a;iht i = 2;A(int x)a = x;public void run()while(i 0)System.out.println(“线程“ + a);i-;public class Testl3public static void main(String args)Thread a1 = new Thread(new A(1);Th
17、read a2 = new Thread(new A(2);a1.start();a2.start();(分数:3.00)A.线程 1 线程 1线程 2 线程 2 B.线程 1线程 2C.线程 1线程 2线程 1线程 2D.线程 1线程 1线程 1线程 1解析:解析 类 A实现了 Runnable接口,并且通过类的构造函数 A(int x)传递整型参数给对象作为线程的编号。在 run()线程体内,实现打印两个字符串。在 main()方法中,用 A类的 2个对象创建了 a1和a2两个线程,当 a1和 a2开始执行时,从 A类的 run()方法开始执行。3.在同一个浏览器中,当用户离开 Apple
18、t所在的页面,而转到另一个页面时,Applet 将会_。(分数:3.00)A.继续运行B.挂起C.停止运行 D.生成一个后台线程解析:解析 用户在同一个浏览器中,离开了 Applet所在的页面来到另一个页面,则 Applet会停止运行,若用户又回到该页面,则 Applet会重新启动运行。4.对于构造方法,下列叙述正确的是_。(分数:3.00)A.构造方法是类的一种特殊方法,它的方法名可以任意取B.构造方法的返回类型只能是 void型C.类中必须定义构造方法D.如果类中定义了构造方法,系统就不再提供默认构造方法 解析:解析 在使用 Java语言编程时,常用构造方法完成一些初始化的工作,避免了生成
19、对象后再调用对象的初始化方法。构造方法的名称应和类名相同,并且该方法不返回任何数据类型,所以没有类型说明,故选项 A和 B错误。若在程序中没有定义构造方法,Java 运行时系统会自动提供默认的构造方法,默认的构造方法没有任何参数,故选项 C错误。如果类中定义了构造方法,系统就不再提供默认构造方法,所以选项 D正确。5.下列有关 Java源代码文件三要素的说法正确的是_。(分数:3.00)A.可以有多个包声明语句B.只能有 1个引入类声明语句C.只能有一个可见性为 public的类,且要求源文件名必须与 public类名相同 D.包声明、引入类声明、类和接口的声明这三者的顺序可以任意解析:解析
20、Java 源代码文件的结构要求只能有 0或 1个程序包语句、任意多个引入类声明语句,所以选项 A和 B错误。书写 Java语言源程序时要求只能有一个公共类,且源程序文件名必须与公共类名相同,因为 Java解释器要求公共类必须放在与之同名的文件中,所以选项 C 正确。源代码文件中,三要素出现的顺序必须是包声明、引入类声明、类和接口的声明,故选项 D错误。6.下列选项_不是 PilterInputStream的子类。(分数:3.00)A.BufferedInputStreamB.CheckedInputStreamC.PushbacklnloutStreamD.FilelnputStream 解析
21、:解析 Java 中的 FilterlnputStream的子类有 BufferedlnputStream、CheckedlnputStream、 CipherlnputStream、DatalnputStream、DigestlnputStream、LineNumberlnputStream、PushbackInputStream等。7.在编写 Java程序的时候,如果不为类的成员变量定义初始值,Java 会给它们默认值,下列说法中不正确的一个是_。(分数:3.00)A.int的默认值是 0B.byte的默认值是 0C.long的默认值是 0.0L D.float的默认值是 0.0f解析:解
22、析 long 类型默认值为 0L,但是不可以有小数点,因此选项 C错误。8.在 Java开发工具 JDK的目录结构中,包含 JDK的一些可执行文件的目录是_。(分数:3.00)A.bin B.docsC.libD.demo解析:解析 选项 A中 bin目录中包含了 JDK的一些可执行文件,如 javac:Java 编译器,java: Java解释器,appletviewer:Applet 查看器等;选项 B中 docs目录中是 HTML的参考文档;选项 C中 1ib目录中是开发工具使用的归档包文件;选项 D中 demo目录中是源代码的程序示例。9.下面程序执行后,baz 的值应是_。publi
23、c class Test9public static void main(String args)int index = 1;int fox = new int 3;iht bar = fox index;int baz = bar + index;System.out.println(baz);(分数:3.00)A.0B.1 C.2D.编译错误解析:解析 int fox=new int3这时数组的每个元素都初始化为 0,所以 int baz=bar+index;,其实,这时 bar的值为 0,这样便有 baz的值为 1。10.定义类头时能使用的修饰符是_。(分数:3.00)A.staticB
24、.privateC.protectedD.abstract 解析:解析 用于定义类头的修饰符可以是 public、abstract、final 或者是默认(friendly)。11.按照运算符的功能划分,运算符|属于_。(分数:3.00)A.关系运算符B.位运算符 C.布尔逻辑运算符D.扩展赋值运算符解析:解析 选项 A,在关系运算符中,不含有运算符|;选项 C,布尔逻辑运算符只有!、public C14(int n)this.i = n;public void run)tryThread.currentThread().sleep(i);catch(InterruptedException
25、ie)System.err.println(ie.tString();System. out.println(“线程“ + Thread.currentThread() .getName+ “睡眠了“ + i + “毫秒结束“);public class Testl4public static void main(String args)Thread t = new Thread(new C14(300), “t“);t.start();(分数:3.00)A.线程 t睡眠了 300毫秒结束 B.线程 Thread-0睡眠了 300毫秒结束C.线程 t睡眠了 i毫秒结束D.线程 Thread-0
26、睡眠了 i毫秒结束解析:解析 由于类 C14实现了 Runnable接口,没有继承类 Thread,因此需要调用 ThreadcurrentThread()方法来返回当前线程的引用。在 main()方法中,调用了类 C14构造方法,其参数就是线程睡眠的时间 300毫秒,而 Thread类构造方法的另一个参数就是线程的名称 t。13.关于 J2SDK的基本命令,下列叙述正确的是_。(分数:3.00)A.javac是 Java语言的解释器,解释运行 Java字节码B.java doc是 JavaAPl文档生成器 C.java是 Java语言的编译器D.javah是 Java类文件解析器,用于解析类
27、文件解析:解析 J2SDK 的基本命令包括javac、java、javadoc、appletviewer、jar、jdb、javah、javap、 extchech。其中,javac 是 Java语言的编译器;javadoc 是 Java APl文档生成器;java 是 Java语言的解释器;javail 是生成 C头文件和Stub文件;avap 是 Java类文件解析器,用于解析类文件。所以选项 B正确。14.下列关于 equals()方法和=运算符的说法,不正确的一个是_。(分数:3.00)A.equals()方法可以用来比较复合数据类型的数值是否相等B.=运算符可以用来比较简单数据类型的
28、数据值是否相等C.运算符和 equals()方法的功能一样,可以相互替换 D.运算符和 equals()方法的功能不完全一样,不可以相互替换解析:解析 =运算符一般适合简单数据类型之间的比较,而 equals()方法一般用于比较复合类型的数据,两者不可以相互替代。15.下面程序执行后,输出的值应是_。public classs Test10public static void main(String args)float a=5, b=4, c=3;if ( -a=b )c=-a/c;System.out.println(c);(分数:3.00)A.1.33B.1.0 C.0.0D.1.67解
29、析:解析 程序做-a,得到 a=4.0f,再与 b做比较,结果相等,条件表达式为 true,执行条件分支,先做-a 得到 a=3.0f,再和 c做除法,得到 1.0f,并把结果赋给 c,因此 c的值为 1.0f。16.下面说法正确的是_。(分数:3.00)A.Java Applet是可以在操作系统的支持下独立运行的一种 Java小应用程序B.Java Applet是一种 Java小应用程序,它跟 Java Application没有什么区别C.Java Applet是一种 Java小应用程序,但它必须嵌入到 HTML文件中运行 D.Java Applet是一种小的 Java Applicati
30、on,它有自己的 main()方法解析:解析 Java Applet 是一类特殊的 Java程序,通常称为 Java小应用程序,它嵌入在 HTML语言中,因此选项 A是错误的,选项 C是正确的。它与 Java Application的区别主要在于其执行方式的不同,Java Application是从 main()方法开始运行的,而 Java Applet则相对复杂一点,它需要在浏览器环境中运行,因此选项 B和 D是错误的。17.关于集合,下列叙述错误的是_。(分数:3.00)A.集合中的对象称为它的元素B.一个集合是代表一组对象的一个对象C.集合主要用于处理各种类型的对象的聚集D.集合包含四个
31、重要接口:Collection、Set、List、Map 解析:解析 一个集合就是代表一组对象的一个对象,这一组对象称为集合的元素,故选项 A和 B正确。每一个对象都具有一定的数据类型,集合主要用来处理各种类型的对象的聚集,故选项 C正确。集合保留了对 Object类的引用,因此,任何数据类型的对象都可以存放在集合中。集合使用户能够通过有用的方法对对象进行存储和组织,以便进行更有效的访问。集合包含的四个重要接口是 Collection、Set、List和 SortedSet,没有 Map,所以选项 D错误。18.实现下列_接口可以对 TextField对象的事件进行监听和处理。(分数:3.00
32、)A.ActionListener B.WindowListenerC.MouseMotionListenerD.FocusListener解析:解析 单行文本输入区只能显示一行,当回车键被按下时,会发生 ActionEvent事件,可以通过ActionListener中的 actionPerferformed()方法对事件进行相应处理,因此选项 A是正确的。19.创建线程有两种方法,一种是继承线程类 Thread,另一种是_。(分数:3.00)A.建立实现 Runnable接口的类 B.直接创建线程即可,无需实现任何接口C.建立实现 Collection接口的类D.建立实现 Thread接口
33、的类解析:解析 因为任何实现 Runnable接口的对象都可以作为一个线程的目标对象,类 Thread本身也实现了接口 Rmmable,所以创建线程有两种方法,一种是通过继承线程类 Thread来创建线程类,另一种是建立一个实现 Runnable接口的类来运行线程。20.SQL语言本身并不是一个很完整的编程语言,一般需要和其他编程语言结合起来使用,_就是一个将 Java语言与 SQL结合起来的编程接口。(分数:3.00)A.JDBC B.JNDIC.RMID.EJB解析:解析 JDBC 是将 Java语言与 SQL结合起来的编程接口。21.Applet的运行过程要经历 4个步骤,其中_不是运行
34、步骤。(分数:3.00)A.浏览器加载指定 URL中的 HTML文件B.浏览器显示 HTML文件 C.浏览器加载 HTML文件中指定的 Applet类D.浏览器中的 Java运行环境运行该 Applet解析:解析 Applet 的运行过程要经历如下 4个步骤:1)浏览器加载指定 URL中的 HTML文件;2)浏览器解析 HTML文件;3)浏览器加载 HTML文件中指定的 Applet类:4)浏览器中的 Java运行环境运行该Applet。因此选项 B不是运行步骤。22.当用户关闭浏览器时,系统就会调用_方法。(分数:3.00)A.start()B.init()C.paint()D.destro
35、y() 解析:解析 当用户关闭浏览器时,系统就会调用 destroy()方法,应该注意 stop()方法和 destroy()方法的区别。选项 D正确。23.下列_不属于 AWT提供的图形图像工具。(分数:3.00)A.形状B.按钮 C.字体D.颜色解析:解析 图形图像工具是 AWT提供的一个重要功能,具体包括了形状、颜色和字体。按钮属于用户界面构件。24.下列常见的系统定义的异常中,_是输入、输出异常。(分数:3.00)A.ClassNotFoundExceptionB.IOEXCeption C.FileNOtFoundExceptionD.UnknownHostEXception解析:解
36、析 ClassNotFoundException 为未找到欲装载使用的类异常,FileNotFoundExcepfion 为未找到指定的文件或目录的异常,UnknownHostException 为无法确定主机的 IP地址异常。下面再举出几种异常:ArraylndexOutOfBoundsException 为数组越界使用异常;IOException 为输入输出异常;NullPointerException为引用为空异常;ArithmeticException 为算术异常。25.下列说法中错误的一项是_。(分数:3.00)A.采用 BorderLayout布局管理,添加构件的时候需要在 add
37、()方法中说明添加到哪一个区域B.采用 BorderLayout布局管理时,每一个区域只能且必须放一个构件 C.采用 BorderLayout布局管理时,不一定要所有的区域都有构件D.采用 BorderLayout布局管理,容器大小发生变化时,构件之间的相对位置不变,构件大小改变解析:解析 采用 BorderLayout布局管理时,将容器分成 5个区域,在这几个区域添加构件的时候需要注明添加到哪个区域,并且这几个区域不一定必须都有构件,但是每个区域只能放一个构件。当容器大小发生变化时,构件之间的相对位置不变,构件大小改变。二、填空题(总题数:10,分数:25.00)26.如果一个 Java A
38、pplet源程序文件中只定义了一个类,该类的类名为 My Applet,则存储该源程序文件的文件名应为 【1】 。(分数:2.50)填空项 1:_ (正确答案:MyAppletjava)解析:解析 在 Java源程序中,规定只能有一个可见性为 public的类,且 Java解释器要求公共类必须放在与之同名的文件中。27.创建一个名为 MyPackage的包的语句是 【2】 。(分数:2.50)填空项 1:_ (正确答案:package MyPackage;)解析:解析 包声明的格式为 package pkg1pkg2pkg3;其中,“”指明了目录的层次。28.表达式 424 的值为 【3】 。
39、(分数:2.50)填空项 1:_ (正确答案:672)解析:解析 42 的二进制数为 00101010,左移 4位,得到的数超过 8位,因此借用高位补齐一共 16位,即 0000001010100000,因此得到的数是 672,在不溢出的情况下,左移一位相当于乘以 2,题干中的左移4位则相当于乘以 24=16,42*16=672。29.字符串分为两大类,一类是字符串常量,使用 String类的对象表示,另一类是字符串变量,使用 【4】 类的对象表示。(分数:2.50)填空项 1:_ (正确答案:StringBuffer)解析:解析 在 Java中,String 类只支持只读字符串,适用于字符串
40、常量;StringBuffer 类支持可修改字符串,适用于字符串变量。30.一个类要使其对象可以被串行化,它必须实现 【5】 接口。(分数:2.50)填空项 1:_ (正确答案:Serializable)解析:解析 在 javaio 包中,接口 Serializable是实现对象串行化的工具,Serializable 接口中没有任何方法,当一个类声明实现 Serializable接口时,只是表明该类遵循串行化协议,而不需要实现任何特殊的方法。一个类,如果不实现 Serializable接口就不能把它们的对象的状态串行化或完全串行化。31.程序中可能出现一种情况:多个线程互相等待对方持有的锁,而
41、且得到对方的锁之前都不会释放自己的锁,这就是 【6】 。(分数:2.50)填空项 1:_ (正确答案:死锁)解析:解析 多个线程都想得到资源但是都得不到,线程无法继续执行,导致了死锁。32. 【7】 布局管理器将组件一排一排地依次放置,它是 Panel和 Applet容器地默认布局管理器。(分数:2.50)填空项 1:_ (正确答案:FlowLayout)解析:解析 FlowLayout 布局管理器将组件按照从左到右,从上到下一排一排地依次放置,它是 Panel和 Applet容器地默认布局管理器。33.从 Component类派生出来的 【8】 类用于表示 GUI中的容器,该类具有的功能是组
42、件管理和布局管理。(分数:2.50)填空项 1:_ (正确答案:Container)解析:解析 从 Component类派生出来的 Container类用于表示 GUI中的容器,该类具有的功能是组件管理和布局管理。34. 【9】 方法用于更新图形。它首先清除背景,然后设置前景,再调用 paint()方法完成组件中的具体绘图。(分数:2.50)填空项 1:_ (正确答案:update())解析:解析 update()方法用于更新图形。它首先清除背景,然后设置前景,再调用 paint()方法完成组件中的具体绘图。35.Applet生命周期包括 Applet的创建、运行和 【10】 几个状态。(分数:2.50)填空项 1:_ (正确答案:消亡)解析:解析 从 Applet下载到浏览器开始,就开始了 Applet的生命周期,直到用户退出浏览器,结束Applet的执行为止。