1、二级 JAVA笔试 40及答案解析(总分:70.00,做题时间:90 分钟)一、B选择题/B(总题数:25,分数:50.00)1.下列说法中错误的一项是_。(分数:2.00)A.当线程需要在 synchronized块中等待共享数据状态改变时,则需要调用 wait()方法B.当线程需要在 synchronized块中等待共享数据状态改变时,则需要调用 notify()方法C.wait()和 notify()可以实现线程的同步操作D.线程在 synchronized块中执行完操作后,调用 notify()方法通知正在等待的线程重新占有锁2.下列程序的输出结果是_。 public class Te
2、st10 public static void main(String args) char c1=B,c2=c; if(c1 + 1c2 ) +c1; System.out.println(c1); (分数:2.00)A.BB.bC.CD.c3.下列 APl不属于 JavalangMath 类的一个是_。(分数:2.00)A.random()B.abs()C.drawLine()D.sin()4.下列对整型常量定义的解释中,正确的一项是_。(分数:2.00)A.034代表八进制的数 1CB.034代表十进制的数 34C.034代表十六进制的数 28D.34L代表值为 34的 64位长整数5.
3、下列说法中错误的一项是_。(分数:2.00)A.Swing构件支持双缓冲区,编写程序的时候不需要重写有关的代码B.AWT构件支持双缓冲区,编写程序的时候不需要重写有关的代码C.AWT构件不支持在按钮构件上添加图标D.Swmg构件支持在按钮构件上同时添加图标和文字6.下列程序的执行结果是_。 class A5 extends Thread boolean b; A5 (boolean bb) b = bb; public void run() System.out.println(this.getName() + “运行“); public class Testl5 public static
4、void main(String args) A5 a1 = new A5(true); A5 a2 = new A5(false); if(a1.b) A1. start(); if (a2 .b) A2.start(); (分数:2.00)A.Thread-0B.Thread-1C.Thread-0D.Thread-1 Thread-1 Thread-07.下列_选项不是 InputStream类中的方法。(分数:2.00)A.public abstract int read() throws IOExceptionB.public final void writeInt (int thr
5、ows IOExceptionC.public int available() throws IOExceptionD.public void close() throws IOException8.下列对于二元算术运算表达式的说法中,正确的一个是_。(分数:2.00)A.若两个操作数都是 float型,则表达式结果为 float型B.若两个操作数都是 float型,则表达式结果为 double型C.若一个操作数是 float型,另一个操作数是 double型,则表达式结果为 float型D.若一个操作数是 float型,另一个操作数是血型,则表达式结果为 int型9.Java语言中的调试器是
6、_。(分数:2.00)A.javacB.javaC.jdbD.javap10.下列说法正确的是_。(分数:2.00)A.即使高优先级的线程调用 slee()方法睡眠时,低优先级的线程也没有办法获得处理器资源B.一个暂时终止运行的线程,在排除了终止原因后直接运行C.一个正在执行的线程使用 yield()方法将处理器让出给同优先级的其他线程D.调用 suspend()方法暂停自己的线程,也可以自行调用 resume()方法恢复自身11.下列关于对象的说法错误的是_。(分数:2.00)A.一个对象就是变量和相关方法的集合B.任何事物都是对象,是某一个对象类的一个元素。可将对象普遍具有的特征概括为状态
7、和行为C.对象通过成员变量来维持其状态,通过方法实现其行为D.一个对象的方法构成这个对象的核心,变量包围着方法,将这个对象和其他对象分离开来12.下列_选项是 javaxswingJApplet 的父类。(分数:2.00)A.javawpanelB.javappleAppletC.javawWindowD.javawframe13.下列选项中,属于 Java语言的代码安全检测机制的一项是_。(分数:2.00)A.动态链接B.访问权限的检查C.通过接口实现多重继承D.将所有的 Java应用都看作对象,按类进行封装14.Socket的工作流程是_。 打开连接到 Socket的输入/输出 按某个协议
8、对 Socket进行读/写操作 创建 Socket 关闭 Socket(分数:2.00)A.B.C.D.15.在下列事件处理机制中,_不是机制中的角色。(分数:2.00)A.事件源B.事件C.事件接3D.事件处理者16.下列_操作是 Applet可以做的。(分数:2.00)A.访问客户端系统的一部分信息B.访问客户端的文件系统C.在客户端访问电子邮件地址D.在客户端调用本地动态链接库17.监听事件和处理事件_。(分数:2.00)A.都是由 Listener完成B.都由相应事件 Listener处登记过的组件完成C.由 Listener和窗口分别完成D.由 Listener和组件分别完成18.p
9、aram可选标记指定 applet外部参数,applet 通过_方法可以获得所给属性值。(分数:2.00)A.getDocumentBase()B.getCodeBase()C.getParameter()D.showDocument(URLurlOb19.public abstract Applet get Applet(Stfing name)可以实现_。(分数:2.00)A.同页 Applet间通信B.Applet的网络通信C.Applet和浏览器间通信D.以上三种通信都能实现20.执行下列程序段之后,变量 b的值为_。 public class Test9 public static
10、void main(String args) int i=12; int j=24; boolean b1=true; boolean b=(j%i= 0) System.out.println(b); (分数:2.00)A.trueB.falseC.1D.021.下列数据流中,属于输入流的一项是_。(分数:2.00)A.从内存流向硬盘的数据流B.从键盘流向内存的数据流C.从网络流向显示器的数据流D.从键盘流向显示器的数据流22.在 Applet的关键方法中,下列_方法是关闭浏览器以释放 Applet占用的所有资源。(分数:2.00)A.init()B.start()C.paint()D.de
11、stroy()23.下列描述中正确的一项是_。(分数:2.00)A.标识符首字符的后面可以跟数字B.标识符不区分大小写C.数组属于基本数据类型D.复合数据类型变量包括布尔型、字符型和浮点型24.下列循环执行的次数是_。 int y=2, x=4; while(-x!=x/y )(分数:2.00)A.2次B.1次C.3次D.0次25.下列叙述中不正确的是_。(分数:2.00)A.Java是新一代编程语言,具有很多优点:简单、面向对象、可移植、与硬件无关、强健安全、具有很高的性能,此外还对多线程、动态性提供了支持B.Java是一种跨平台的面向对象的语言C.Java语言支持多线程。多线程使得应用程序
12、可以同时进行相同的操作,处理多个同一的事件D.Java解释器生成与体系结构无关的字节码结构的文件格式,只需提供相应的 Java运行系统,程序便能在任何种类的处理器上运行二、B填空题/B(总题数:10,分数:20.00)26.Java程序的编译和执行模式包括 2点,是U 【1】 /U和半解释。(分数:2.00)填空项 1:_27.面向对象编程的三个基本特征是U 【2】 /U、继承性和多态性。(分数:2.00)填空项 1:_28.U【3】 /U保留字用于定义常值变量,声明该变量以后不会改变。(分数:2.00)填空项 1:_29.continue语句必须使用于U 【4】 /U中(分数:2.00)填空
13、项 1:_30.任何从U 【5】 /U派生的类都可以用 throw语句抛出,抛出异常用来表明程序遇到的错误无法正常执行而需要异常处理。(分数:2.00)填空项 1:_31.线程生命周期有几种状态,分别是创建状态、可运行状态、U 【6】 /U、不可运行状态和死亡状态。(分数:2.00)填空项 1:_32.请在下面横线处填入适当的代码,将线程对象 runner2的优先级设置为最高。 class ThreadTest extends Thread public static void main(String args) ThreadTest runner = new ThreadTest4; for
14、(int j = 0; j4; j+) runnerj = new ThreadTest(); for(int j = 0; j4; j+) runnerj.start(); U 【7】 /U runner3.setPriority(MIN_PRIORITY); public void run) for(int i = 0; i100000; i+); System.out.println(getName() + “线程的优先级是:“ + getPriority() + “计算完毕“);(分数:2.00)填空项 1:_33.在 Java程序中,run()方法的实现方式有两种,是U 【8】 /U
15、和继承 Thread类。(分数:2.00)填空项 1:_34.使用 AWT和 Swing编写的图形用户界面,首先要考虑的问题是如何将U 【9】 /U放入界面。(分数:2.00)填空项 1:_35.Java Applet不能直接运行,必须编写U 【10】 /U文件,将 Applet嵌入其中。(分数:2.00)填空项 1:_二级 JAVA笔试 40答案解析(总分:70.00,做题时间:90 分钟)一、B选择题/B(总题数:25,分数:50.00)1.下列说法中错误的一项是_。(分数:2.00)A.当线程需要在 synchronized块中等待共享数据状态改变时,则需要调用 wait()方法B.当线
16、程需要在 synchronized块中等待共享数据状态改变时,则需要调用 notify()方法 C.wait()和 notify()可以实现线程的同步操作D.线程在 synchronized块中执行完操作后,调用 notify()方法通知正在等待的线程重新占有锁解析:解析 线程调用 wait()方法,进入等待状态,并且暂时释放共享数据的对象锁,其他的线程可以获得该对象锁,进入临界区进行操作,操作完成之后,再调用 notify()方法通知等待的线程重新占有锁,这样就实现了线程的同步操作。2.下列程序的输出结果是_。 public class Test10 public static void m
17、ain(String args) char c1=B,c2=c; if(c1 + 1c2 ) +c1; System.out.println(c1); (分数:2.00)A.BB.bC.C D.c解析:解析 在程序中,c1 和 c2均为 char类型的变量,判断条件 c1+1c2 执行过程是:在 Unicode字符集中找到字符B的下一个字符,即C。再将字符C和字符c的索引值做比较,在Unicode字符集中,C的索引值小于C的索引值,因此条件表达式为 true,条件分支 +c1;将被执行,因此 c1的值变为B的下一个字符C。3.下列 APl不属于 JavalangMath 类的一个是_。(分数:
18、2.00)A.random()B.abs()C.drawLine() D.sin()解析:解析 选项 A,random()方法是 javalangMath 类中给出的求随机数的方法;选项 B,abs()方法是 javalangMath 类提供的求绝对值的方法;选项 D,sin()方法是 javalangMath 类提供的求正弦函数的方法;选项 C,是 Graphics类提供的画直线的方法。4.下列对整型常量定义的解释中,正确的一项是_。(分数:2.00)A.034代表八进制的数 1CB.034代表十进制的数 34C.034代表十六进制的数 28D.34L代表值为 34的 64位长整数 解析:解
19、析 034 应该表示八进制的数 34,十进制的数 3*8+4=28,十六进制的数 1C(十进制数 28 除以16得到 1并且余 12,12 以十六进制表示应该是 C,因此得到 1C),34L 表示 long整型的数 34。因此正确答案为 D。5.下列说法中错误的一项是_。(分数:2.00)A.Swing构件支持双缓冲区,编写程序的时候不需要重写有关的代码B.AWT构件支持双缓冲区,编写程序的时候不需要重写有关的代码 C.AWT构件不支持在按钮构件上添加图标D.Swmg构件支持在按钮构件上同时添加图标和文字解析:解析 Swing 构件支持双缓冲区,JComponent 构件默认双缓冲区,但是 A
20、WT构件不支持,需要重写代码。6.下列程序的执行结果是_。 class A5 extends Thread boolean b; A5 (boolean bb) b = bb; public void run() System.out.println(this.getName() + “运行“); public class Testl5 public static void main(String args) A5 a1 = new A5(true); A5 a2 = new A5(false); if(a1.b) A1. start(); if (a2 .b) A2.start(); (分数
21、:2.00)A.Thread-0 B.Thread-1C.Thread-0D.Thread-1 Thread-1 Thread-0解析:解析 类 A5继承了 Thread类,并且重写了 Thread类的 run()方法,调用本线程的 getName()方法打印出系统给本线程定义的名称。在 main()方法中,a1 和 a2是 A5的对象,它们对应的系统默认的线程名称分别是 Thread0和 Thread1,根据类 A5的类变量 b的布尔值控制哪一个线程调用 start()方法,这里应该是 a1线程被调度执行。7.下列_选项不是 InputStream类中的方法。(分数:2.00)A.publi
22、c abstract int read() throws IOExceptionB.public final void writeInt (int throws IOException C.public int available() throws IOExceptionD.public void close() throws IOException解析:解析 选项 B中的 public final void writeInt(int v) throws IOException方法是OutputStream类中的方法。8.下列对于二元算术运算表达式的说法中,正确的一个是_。(分数:2.00)A
23、.若两个操作数都是 float型,则表达式结果为 float型 B.若两个操作数都是 float型,则表达式结果为 double型C.若一个操作数是 float型,另一个操作数是 double型,则表达式结果为 float型D.若一个操作数是 float型,另一个操作数是血型,则表达式结果为 int型解析:解析 选项 B中,若两个操作数都是 float型,则结果应该还是 float型;选项 C中,若操作数中一个是 float型,一个是 double型,则结果应该是 double型;选项 D中,若操作数中一个是 float型,一个是 int型,表达式结果应该是 float型。9.Java语言中的
24、调试器是_。(分数:2.00)A.javacB.javaC.jdb D.javap解析:解析 选项 A中 javac是 Java编译器;选项 B中 java是 Java解释器;选项 D中 javap是 Java类文件解析器;只有选项 C中 jdb是 Java程序的调试器。10.下列说法正确的是_。(分数:2.00)A.即使高优先级的线程调用 slee()方法睡眠时,低优先级的线程也没有办法获得处理器资源B.一个暂时终止运行的线程,在排除了终止原因后直接运行C.一个正在执行的线程使用 yield()方法将处理器让出给同优先级的其他线程 D.调用 suspend()方法暂停自己的线程,也可以自行调
25、用 resume()方法恢复自身解析:解析 线程调用 sleep()方法后,相同优先级的线程和低优先级的线程都将获得可执行的机会,所以选项 A错误。yield()方法使当前线程暂停执行,以允许其他线程执行。调用 yield()方法后,线程仍处于可运行状态,此时,可以选择其他已进入可运行状态且优先级相同的线程执行。若无同优先级线程,当前线程会继续执行,所以选项 C正确。调用 suspend()方法使线程暂停执行,由可运行状态切换到不可运行状态,要想恢复执行必须由其他线程而非自身来调用 resume()方法,所以选项 B和 D错误。11.下列关于对象的说法错误的是_。(分数:2.00)A.一个对象
26、就是变量和相关方法的集合B.任何事物都是对象,是某一个对象类的一个元素。可将对象普遍具有的特征概括为状态和行为C.对象通过成员变量来维持其状态,通过方法实现其行为D.一个对象的方法构成这个对象的核心,变量包围着方法,将这个对象和其他对象分离开来 解析:解析 选项 A、B 和 C的说法均正确。一个对象就是变量和相关方法的集合,其中变量表明对象的状态,方法表明对象所具有的行为。对象占有存储空间,给对象分配空间就确定了给定时刻对象的状态,而与每个对象相关的方法定义了该对象上的操作。一个对象的变量构成这个对象的核心,方法包围着变量,将这个对象和其他对象分离开来,即隐藏该对象,使外界不可见。选项 D正好
27、相反,故错误。12.下列_选项是 javaxswingJApplet 的父类。(分数:2.00)A.javawpanelB.javappleApplet C.javawWindowD.javawframe解析:解析 javaxswingJApplet 是 Applet的直接子类,继承了 Al,plet 的方法与执行机制。 Javaawtpanel 是 javaappletApplet 的直接父类,javaawtWindow 是 javaawt,frame 的直接父类。13.下列选项中,属于 Java语言的代码安全检测机制的一项是_。(分数:2.00)A.动态链接B.访问权限的检查 C.通过接口
28、实现多重继承D.将所有的 Java应用都看作对象,按类进行封装解析:解析 选项 A错误,动态链接是 JVM的一个重要特点;选项 C错误,接口是用来实现多重继承的一种方法,Java 通过这种方法来提高类继承的灵活性和扩展性:选项 D错误,用类把 Java的所有应用封装起来,是面向对象的基本思想;选项 B正确;访问权限是解释器在解释执行 Java程序时进行检查的,属于 Java安全机制。14.Socket的工作流程是_。 打开连接到 Socket的输入/输出 按某个协议对 Socket进行读/写操作 创建 Socket 关闭 Socket(分数:2.00)A.B.C. D.解析:解析 Socket
29、 工作过程分为四步,分别是创建 Socket,打开连接到 Socket的输入/输出,按某个协议对 Socket进行读/写操作,关闭 Socket。15.在下列事件处理机制中,_不是机制中的角色。(分数:2.00)A.事件源B.事件C.事件接3 D.事件处理者解析:解析 在事件处理的过程中,主要涉及 3类对象:事件、事件源、事件处理者,因此选项 C是正确的。16.下列_操作是 Applet可以做的。(分数:2.00)A.访问客户端系统的一部分信息 B.访问客户端的文件系统C.在客户端访问电子邮件地址D.在客户端调用本地动态链接库解析:解析 Applet 在客户端运行时,受到了安全限制,一部分系统
30、信息之外的敏感信息都不可以访问,比如电子邮件地址、文件系统和动态链接库都不能直接访问。17.监听事件和处理事件_。(分数:2.00)A.都是由 Listener完成 B.都由相应事件 Listener处登记过的组件完成C.由 Listener和窗口分别完成D.由 Listener和组件分别完成解析:解析 实现了 Listener接口的对象可作为监听器,事件发生后,组件通知已注册的所有监听器,监听器再调用相应的处理方法进行响应,因此选项 A正确。18.param可选标记指定 applet外部参数,applet 通过_方法可以获得所给属性值。(分数:2.00)A.getDocumentBase()
31、B.getCodeBase()C.getParameter() D.showDocument(URLurlOb解析:解析 param name=appletAttribute 1 value=val可选标记指定 applet外部参数,applet通过 getParameter()方法可以获得所给属性值。19.public abstract Applet get Applet(Stfing name)可以实现_。(分数:2.00)A.同页 Applet间通信 B.Applet的网络通信C.Applet和浏览器间通信D.以上三种通信都能实现解析:解析 当某个 Applet要与同页中的 Applet
32、进行:通信时,public abstract Applet getApplet(SWing name)得到名称为 name的 Applet对象。选项 A正确。20.执行下列程序段之后,变量 b的值为_。 public class Test9 public static void main(String args) int i=12; int j=24; boolean b1=true; boolean b=(j%i= 0) System.out.println(b); (分数:2.00)A.trueB.false C.1D.0解析:解析 表达式执行次序为:首先做!b1 得到 false:然后做
33、 j%i=0得到 true;再做 j/i!=2得到false:然后做 while(-x!=x/y )(分数:2.00)A.2次B.1次C.3次 D.0次解析:解析 首先判断终止条件,-x 之后,x=3,x/y=1,满足条件,执行第一次循环;再判断终止条件,-x 之后,x=2,x/y=1,满足条件,执行第二次循环:再判断终止条件,-x 之后, x=1,x/y=0,满足条件,执行第三次循环;再判断终止条件,-x 之后,x=0,x/y=0,不满足条件,退出循环;因此一共执行了 3次循环。25.下列叙述中不正确的是_。(分数:2.00)A.Java是新一代编程语言,具有很多优点:简单、面向对象、可移植
34、、与硬件无关、强健安全、具有很高的性能,此外还对多线程、动态性提供了支持B.Java是一种跨平台的面向对象的语言C.Java语言支持多线程。多线程使得应用程序可以同时进行相同的操作,处理多个同一的事件 D.Java解释器生成与体系结构无关的字节码结构的文件格式,只需提供相应的 Java运行系统,程序便能在任何种类的处理器上运行解析:解析 选项 C错误,多线程是 Java的一个主要特性,使可执行程序具有同时保持几个线程的执行的能力。不要把它与多任务混淆。多任务是指操作系统可以同时运行多个程序,而多线程可允许应用程序同时做几个不同的操作,处理多个不同的事件。二、B填空题/B(总题数:10,分数:2
35、0.00)26.Java程序的编译和执行模式包括 2点,是U 【1】 /U和半解释。(分数:2.00)填空项 1:_ (正确答案:半编译)解析:解析 Java 程序首先由编译器编译成字节码文件,然后再由 JVM解释器解释执行字节码文件。由于编译和解释有先后,所以称为半编译和半解释,一般都认为 Java语言是解释执行的。27.面向对象编程的三个基本特征是U 【2】 /U、继承性和多态性。(分数:2.00)填空项 1:_ (正确答案:封装性)解析:解析 面向对象编程的基本特征在于其封装性和继承性,通过封装能将对象的定义和对象的实现分开,通过继承能体现类与类之间的关系,由此引出其多态性。封装是一种信
36、息隐蔽技术,用户只可以看到对象封装界面上的信息,对象内部对用户是隐蔽的。封装的目的在于将对象的使用者和设计者分开。使用者不必知道对象内部的实现细节,只需要使用设计者提供的信息来访问该对象就可以了。28.U【3】 /U保留字用于定义常值变量,声明该变量以后不会改变。(分数:2.00)填空项 1:_ (正确答案:final)解析:解析 final 是 Java语言的保留字,它用来定义一个永远不会改变的变量,如:final int a=1;语句中的变量 a的值将不会再改变。29.continue语句必须使用于U 【4】 /U中(分数:2.00)填空项 1:_ (正确答案:循环语句)解析:解析 con
37、tinue 语句有两种形式,一种是不带标签的,作用是终止当前这一轮循环,跳过下面的语句,直接进入下一轮循环;一种是带标签的,作用是直接转入标签所标识的循环层次。这两种形式都是对循环语句而言的,因此 continue语句必须使用于循环语句中。30.任何从U 【5】 /U派生的类都可以用 throw语句抛出,抛出异常用来表明程序遇到的错误无法正常执行而需要异常处理。(分数:2.00)填空项 1:_ (正确答案:Throwable)解析:解析 Throwable 是基类,由它派生出 Error和 Exception类,可以抛出的异常都是通过继承这个类实现的。31.线程生命周期有几种状态,分别是创建状
38、态、可运行状态、U 【6】 /U、不可运行状态和死亡状态。(分数:2.00)填空项 1:_ (正确答案:运行状态)解析:解析 线程创建后,就开始了它的生命周期。在不同的生命阶段线程有不同的状态。对线程调用各种控制方法,就使线程从一种状态转换为另一种状态。其中,运行状态是线程占有 CPU并处于运行中的状态。32.请在下面横线处填入适当的代码,将线程对象 runner2的优先级设置为最高。 class ThreadTest extends Thread public static void main(String args) ThreadTest runner = new ThreadTest4;
39、 for(int j = 0; j4; j+) runnerj = new ThreadTest(); for(int j = 0; j4; j+) runnerj.start(); U 【7】 /U runner3.setPriority(MIN_PRIORITY); public void run) for(int i = 0; i100000; i+); System.out.println(getName() + “线程的优先级是:“ + getPriority() + “计算完毕“);(分数:2.00)填空项 1:_ (正确答案:nmner2lsetPriority(MAX_PRIO
40、RITY);)解析:解析 程序中定义了一个 ThreadTest类,在此类中声明四个线程对象 runner1、runner2、 runner3和 runner4,并对这四个线程进行初始化和启动,然后将 runner2的优先级设置为最高,runner3的优先级设置为最低。线程对象 runner1和 runner4的优先级未进行设置,故采用默认优先级。在 run()方法输出线程运行信息和优先级。33.在 Java程序中,run()方法的实现方式有两种,是U 【8】 /U和继承 Thread类。(分数:2.00)填空项 1:_ (正确答案:实现 Runnable接口)解析:解析 由于 Thread类
41、构造函数的 target参数可以是任何实现了 Runnable接口的对象,同时Thread类本身也实现了 Runnable接口,因此有这两种方式实现 rurl()方法。34.使用 AWT和 Swing编写的图形用户界面,首先要考虑的问题是如何将U 【9】 /U放入界面。(分数:2.00)填空项 1:_ (正确答案:构件)解析:解析 编写好的图形用户界面程序要注意 3点思路:一是如何在界面中放置构件;二是如何让构件响应用户的操作;三是如何掌握构件的显示效果和响应。35.Java Applet不能直接运行,必须编写U 【10】 /U文件,将 Applet嵌入其中。(分数:2.00)填空项 1:_ (正确答案:HTML)解析:解析 由于 Java Applet中没有 main()方法作为程序的入口,不能使用 java命令运行该程序,必须编写 HTML文件,将 Application嵌入其中,然后用 appletviewer来运行。