admin 管理员组

文章数量: 887031


2024年1月11日发(作者:本地mysql数据库地址在哪查看)

二级JAVA笔试60

(总分:100.00,做题时间:90分钟)

一、{{B}}选择题{{/B}}(总题数:35,分数:70.00)

1.下面程序段: boolean a=false; boolean b=true; boolean c=(a&&b)&&(!b); boolean result=(a&b)&(!b);

执行完后,正确的结果是( )。

(分数:2.00)

A.c=false;result=false √

B.c=true,result=true

C.c=true;result=false

D.c=false;result=true

解析:[解析] 本题考查Java中的运算。首先要清楚,“&&”是逻辑与运算符;“!”是逻辑非运算符;“&”是按位与运算符。按照逻辑运算符“a&&b”是false,“!b”是false,所以c是false。“a及b”是false,所以result是false。要注意区分“&&”和“&”,以及运算符之间的优先级关系,本题虽然没有涉及,但也要作为重点掌握。

2.已知:int[]a=new int [100];在下列给出的数组元素中,非法的是( )。

(分数:2.00)

A.a[0]

B.或[1]

C.a[99]

D.a[100] √

解析:[解析] 本题考查Java中数组的概念。对于数组的掌握,不能仅仅停留在概念上,更多的是能将所学的知识灵活运用。int[]a=new int[100]定义了一个数组a,含有100个整型元素。在Java中,数组元素的下标是从0开始的,因此上面定义的数组实际上下标是从0~99,所以选项D错误。

3.在switch(expression)语句中,expression的数据类型不能是( )。

(分数:2.00)

解析:[解析] 本题考查考生对swithch(expression)语句的理解。表达式expression只能返回:int、 byte、short和char,题目中的double是不正确的。同时还要注意,多分支结构中,case子句的值必须是常量,而且所有case子句中的值应是不同的,default子句是任选的。

4.为了使模块尽可能独立,要求( )。

(分数:2.00)

A.模块的内聚程序要尽量高,且各模块间的耦合程度要尽量强

B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 √

C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱

D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强

解析:[解析] 系统设计的质量主要反映在模块的独立性上。评价模块独立性的主要标准有两个:一是模块之间的耦合,它表明两个模块之间互相独立的程度:二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。综上所述,选项B的答案正确。

5.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指( )。

(分数:2.00)

A.数据与程序独立存放

B.不同的数据被存放在不同的文件中

C.不同的数据只能被对应的应用程序所使用

D.以上三种说法都不对 √

解析:[解析] 数据具有两方面的独立性:一是物理独立性。即由于数据的存储结构与逻辑结构之间由系统提供映像,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。二是逻辑独立性。即由于数据的局部逻辑结构(它是总体逻辑结构的一个子集,由具体的应用程序所确定,并且根据具体的需要可以作一定的修改)与总体逻辑结构之间也由系统提供映像,使得当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序也可以不必修改。综上所述,本题的正确答案是D。

6.在一棵二叉树上第5层的结点数最多是( )。

(分数:2.00)

A.8

B.16 √

C.32

D.15

解析:[解析] 根据二叉树的性质,在二叉树的第 K层上,最多有2的k 1次方个结点。所以,第5层的结点数最多为16。

7.下列关于线程调度的叙述中,错误的是( )。

(分数:2.00)

A.调用线程的sleep()方法,可以使比当前线程优先级低的线程获得运行机会

B.调用线程的yeild()方法,只会使与当前线程相同优先级的线程获得运行机会

C.当有比当前线程的优先级高的线程出现时,高优先级线程将抢占CPU并运行

D.具有相同优先级的多个线程的调度一定是分时的 √

解析:[解析] 本题考查对线程调度的理解。线程属于考试难点,概念不容易理解,需多下功夫。调用线程的sleep()方法,可以使比其低的优先线程运行,所以选项A说法正确;调用线程的 yeild()方法,只让给同优先级运行,所以选项B说法正确;Java的线程调度策略是一种基于优先级的抢先式调度,所以选项C说法正确;具有相同优先级的多个线程的调度可能是分时的,也可能是线程逐个运行,由具体JVM而定,选项D说法错误,故为所选。

8.在Java中,能实现多重继承效果的方式是( )。

(分数:2.00)

A.内部类

B.适配器

C.接口 √

D.同步

解析:[解析] 本题考查Java中多重继承的概念。首先要区分选项中各个概念。内部类是在一个类中的内部嵌套定义的类,主要用来生成事件适配器。适配器定义一个包装类,包装有不兼容接口的对象。这个包装类指的就是适配器 (Adapter),它包装的对象就是适配者 (Adaptee),适配器提供客户类需要的接口。接口是一种只含有抽象方法或常量的一种特殊的抽象类,因为接口不包括任何实现,所以与存储空间没有任何关系,将多个接口合并,即多重继承就可以很容易实现,选项C正确。同步主要用在多线程程序设计中。

9.下列属于合法的Java标识符是( )。

(分数:2.00)

A._cat √

B.5books

C.+static

D.-3.14159

解析:[解析] 本题考查Java标识符的命名规则。这是考试重点内容。 Java中标识符的命名规则是:标识符以字母、下划线、美元符作为首字符的字符串序列;标识符是区分大小写的;标识符的字符数没有限制。由此可见Java中标识符不能以数字开头,所以选项B错误,不能以“+”开头,选项C错误,不能以“-”开头,选项D错误,只有选项A是正确答案。

10.下列数据结构中,能用二分法进行查找的是( )。

(分数:2.00)

A.顺序存储的有序线性表 √

B.线性链表

C.二叉链表

D.有序线性链表

解析:[解析] 二分查找只适用于顺序存储的有序表。在此所说的有序表是指线性表中的元素按值非递减排列(即从小到大,但允许相邻元素值相等)的。选项A正确。

11.在下面附属类方法中的下划线处应填入的正确参数是( )。 public void writeData(________) throws

IOException{ GregorianCalendar calendar=new GregorianCalendar(); e(hireDay);

n(name+"|"+salary+"|" +()+"|"

+(()+1)+"|" +(_OF_MONTH)); }

(分数:2.00)

ee[]e

B."employedat"

riter out √

edWriter

解析:[解析] 本题考查考生对附属类的掌握。题目看起来很难,其实不用去理解程序即可回答,按照Java中的语法规则,只有选项C满足题目。在题目中出现了“out”变量,只有选项C中“PrintWriter out”有该变量。选项A只是用来定义一个数组,选项B是一个常量,不能用在这里,选项D中“BufferedWriter”后缺少参数。这个题目考点有些含糊,容易让考生莫名其妙,如果将程序整个给出也许更好一些,了解即可,本题的关键是明白附属类的概念。

12.在Java中,所有类的根类是( )。

(分数:2.00)

Object √

Class

leApplet

rame

解析:[解析] 本题考查考生对Java类的掌握。在 Java中包封装着所有编程应用的基本类。Object是所有类的根,它所包含的属性和方法被所有类集成。Class类是由编译器自动生成对象的一个特殊类,它伴随每个类。选项C和选项D都是普通类。

13.数据库系统的核心是( )。

(分数:2.00)

A.数据模型

B.数据库管理系统 √

C.软件工具

D.数据库

解析:[解析] 数据库管理系统是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,因此数据库管理系统是数据库系统的核心。

14.下列情况中,不会使线程返回所持有的对象锁的是( )。

(分数:2.00)

A.当synchronized()语句块执行完毕

B.当调用了线程的suspend()方法 √

C.当在synchronized()语句块中出现异常(Exceptio

D.当持有锁的线程调用该对象的wait()方法

解析:[解析] 本题考查Java线程中对象的加锁及其操作。对象加锁的使用非常灵活,一定要注意。对象的锁在如下几种情况下由持有线程返还:当synchronized()语句块执行完后,所以选项A错误;当在synchronized()语句块中出现异常 (exception),所以选项B错误;当持有锁的线程调用该对象的wait()

方法,此时该线程将释放对象的锁,所以选项D错误。而当调用了线程的suspend()方法只是使线程暂时停止执行,可以使用其他线程调用resume()方法恢复执行,所以选项B正确。

15.下列关于Applet的叙述中,错误的是( )。

(分数:2.00)

是Java类,所以可以由JDK中的解释器javexe直接解释运行 √

应该定义为javappleApplet类或javaswinJApplet类的子类

与Application的主要区别在执行方式上

D.通过在HTML文件中采用<PARAM>标记可以向Applet传递参数

解析:[解析] 本题考查JavaApplet的概念。Applet是Java与Web相结合而引入的重要的Java应用形式。Applet是Java类,但自身不能运行,必须嵌入在其他应用程序中运行,因此不能直接由解释运行,选项A说法错误。 Applet与Application的主要区别在执行方式上,Application以main()方法为入口点运行, Applet要在浏览器或appletviewer中运行,运行过程比Application更复杂。

16.在文件类提供的方法中,用于创建文件夹的方法是( )。

(分数:2.00)

() √

()

()

ots()

解析:[解析] 本题考查文件类提供的方法。mkdir()是为文件夹操作提供的方法,用来创建文件夹:mkdirs()也是为文件夹操作提供的方法,创建包含父文件夹的文件夹;list()是对文件名操作提供的方法,返回一个字符串数组,为该文件所在文件夹下的所有文件名列表;listRoots是为文件夹提供的方法,返回根文件夹结构。由此可见,只有选项A满足题目要求。

类型的取值范围是( )。

(分数:2.00)

A.2~2-1

B.0~2-1 √

C.-2~2-1

D.O~2-1

解析:[解析] 本题考查Java中数据类型的取值范围。应该掌握常用的数据类型的取值范围,char类型在内存中占16位,取值范围是0~65535也就是0~2的16次方减1,选项B正确。

18.下列代表八进制整数的是( )。

(分数:2.00)

A.0XA6

B.-1E3

C.1840

D.0144 √

解析:[解析] 本题考查Java语言中的整型常量。题目不难,但属于学习程序设计语言的基础,应有所了解。整型常量有3种书写格式:十进制整数,如156, -230,345:八进制整数:以0开头,如012表示十进制的10;十六进制整数;以0x或0X开头,如0X123表示十进制数291。由此可见,选项A表示的是十六进制整数,选项B不是整数形式,选项C是十进制整数,选项D是八进制整数,所以D为本题正确选项。

19.下列描述中正确的是( )。

(分数:2.00)

A.软件工程只是解决软件项目的管理问题

B.软件工程主要解决软件产品的生产率问题

C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 √

D.软件工程只是解决软件开发中的技术问题

解析:[解析] 软件工程学是研究软件开发和维护的普遍原理与技术的一门工程学科。所谓软件工程是指,采用工程的概念、原理、技术和方法指导软件的开发与维护。软件工程学的主要研究对象包括软件开发与维护的技术、方法、工具和管理等方面。由此可见,选项A、B和 D的说法均不正确,选项C正确。

8151516-77

20.下列叙述中正确的是( )。

(分数:2.00)

A.一个逻辑数据结构只能有一种存储结构

B.数据的逻辑结构属于线性结构,存储结构属于非线性结构

C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率

D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率 √

解析:[解析] 一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构。而采用不同的存储结构,其数据处理的效率是不同的。由此可见,选项D的说法正确。

中对Applet设置了严格的安全限制。下列关于Applet在Java2中的安全限制叙述正确的是( )。

(分数:2.00)

A.根本无法解除

B.只有部分限制可以解除,而其他限制无法解除

C.可以在安全策略的控制下解除 √

D.已经默认地全部解除

解析:[解析] 本题考查Applet的安全限制。Java2中的安全机制建立一个策略文件给Applet授予所需的权限,并使用这个安全策略实施对该 Applet的安全控制,选项C说法正确。要注意分析题目,本题通过仔细分析题目,也可以正确回答。

型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( )。

(分数:2.00)

int MAX_LENGTH=100

int MAX_LENGTH=100

const int MAX_LENGTH=100

final int MAX_LENGTH=100 √

解析:[解析] 本题考查Java中变量的声明。选项 A虽然按照题目要求定义了一个变量,但没有满足保持为常数的要求,该变量可以被改变。选项B没有满足题目要求的public成员变量:选项C与C语言混淆,const是C语言用来定义常值变量的关键字,Java中定义常值变量使用的是final属性,说明该值赋值以后永不改变,所以选项D为正确答案。

23.能够支持javadoc命令的注释语句是( )。

(分数:2.00)

A./**...//

B./*...*/

C.//

D./**...*/ √

解析:[解析] 本题考查Java中的注释语句。注释是程序设计的重要组成部分,应熟练掌握。Java中有三类注释语句:文档注释/**...*/,被 javadoc处理,可以建立类的一个外部说明性文件,所以本题正确答案是选项D;C语言注释风格/*…*/,用于去掉当前不再使用但仍想保留的代码等;单行注释//,格式上要求注释符//后必须紧跟一个空格,然后才是注释信息。

24.与Applet生命周期相关的方法的数量是( )。

(分数:2.00)

A.4种 √

B.3种

C.2种

D.5种

解析:[解析] 本题考查Applet生命周期的概念。 Applet声明周期是指从Applet下载到浏览器,到用户退出浏览器,终止Applet运行的过程。 Applet生命周期方法包括init()方法、start()方法、stop()方法和destroy()方法,一共4种,所以选项A正确。

25.线程在生命周期中要经历5种状态。如果线程当前是新建状态,则它可到达的下一个状态是( )。

(分数:2.00)

A.运行状态

B.阻塞状态

C.可运行状态 √

D.终止状态

解析:[解析] 本题考查线程的生命周期。线程一旦创建,就开始了它的生命周期。线程的声明周期主要分为:新建状态(new),线程创建后处于该状态:可运行状态(Runnable),新建的线程调用start()方法,将使线程的状态从New转换为Runnable,所以选项C正确;运行状态 (Running),运行状态使线程占有CPU并实际运行的状态;阻塞状态(Blocked),导致该状态的原因很多,注意区别;终止状态(Dead),线程执行结束的状态,没有任何方法可改变它的状态。

26.用来导入已定义好的类或包的语句是( )。

(分数:2.00)

class

解析:[解析] 本题考查Java中的import语句。Java中使用import语句来导入已定义好的类或包,需要注意Java语言的包是编译器自动导入的,编程时如果使用该包中的类,可省去 import导入,如果要使用其他包中的类,必须用import导入。

27.阅读和理解下面程序段: class Manager extends Employee{ public Manager(String n,double s,int year,int month,int day){ super(n,s,year,month,day); bonus=0; } public double

getSalary(){ double baseSalary-super.gerSalary(); return baseSalary+bonus; } public void

setBonus(double b){bonus=b; ) private double bonus; } Manager是Employee的子类,其理由是( )。

(分数:2.00)

r的适用范围较宽

s关键字声明 √

r的域减小了

D.雇员是一个经理

解析:[解析] 本题考查Java中子类的概念。Java中通过在类声明中加入extends子句来创建子类,格式为:class SubClass extens SuperClass{…}。题目中class Manager extends Employee语句定义Manager类为Employee类的子类,所以选项B是正确答案。Manager类定义了Manager(String n,double s,int

year,int month,int day)、getSalary()和setBonus(double b)成员方法和bonus成员变量。

28.用树形结构表示实体之间联系的模型是( )。

(分数:2.00)

A.关系模型

B.网状模型

C.层次模型 √

D.以上3个都是

解析:[解析] 在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统(DBMS)也不同。目前常用的数据模型有三种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树形结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。因此,本题的正确答案是C。

29.在Java中,表示换行符的转义字符是( )。

(分数:2.00)

A./n √

B./f

C.'n'

D./dd

解析:[解析] 本题考查Java转义符的概念。在Java中用反斜杠(/)开头,/n表示换行,所以选项 A正确。/f表示走纸换页,/dd表示1~2位的八进制数据(dd)表示所代表的字符。

30.查找随机文件的记录时,应使用的方法是( )。

(分数:2.00)

t()

tes(int

(long √

uble()

解析:[解析] 本题考查随机文件流的相关方法。 RandomAccessFile中主要包含的方法有: length()方法用来求随机文件的字节长度: seek(long pos)方法用来对随机文件记录的查找,所以选项C正确;close()方法用来将随机文件资源关闭;readDouble()是对随机文件浮点数的读取;readInt()是对随机文件整数的读取; readChar()是对随机文件字符变量的读取; skipBytes(intn)是随机文件字节的读取。

默认的布局管理器是( )。

(分数:2.00)

yout

Layout √

yom

yout

解析:[解析] 本题考查Java中的布局管理器。 FlowLayout是Pane和Applet默认的布局管理器,构件在容器中从上到下、从左到右进行放置;BorderLayout是Window、Frame和Dialog的默认布局管理器,选项B正确,在 BorderLayont布局管理器中,构件分成5个区域,每个区域只能放置一个构件:GridLayout使容器中各个构件呈网状布局,平均占据容器的空间;GardLayout把容器分成许多层,每层只能放置一个构件。

32.数据的存储结构是指( )。

(分数:2.00)

A.存储在外存中的数据

B.数据所占的存储空间量

C.数据在计算机中的顺序存储方式

D.数据的逻辑结构在计算机中的表示 √

解析:[解析] 数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据的物理结构。所以选项D正确。

33.下列关于线程优先级的说法中,正确的是( )。

(分数:2.00)

A.线程的优先级是不能改变的

B.线程的优先级是在创建线程时设置的

C.在创建线程后的任何时候都可以设置 √

D.B和C

解析:[解析] 本题考查线程优先级的概念。首先应该了解Java的线程是有优先级的,并且可以控制其优先级,可以排除选项A;选项B和选项C本身就矛盾,故选项D是错误的,B和C不能同时选择。线程的优先级在创建线程时可以设置,也可以通过getPriority()方法来获得线程的优先级,通过setPriority()方法来设定线程的优先级。线程的优先级属于考试重点内容,应该重点掌握。

34.下列赋值语句中错误的是( )。

(分数:2.00)

f=11.1f;

d=5.3E12;

c='/r';

bb=433; √

解析:[解析] 本题考查Java语言中的赋值运算。赋值运算符(=)是把一个表达式的值赋给一个变量,赋值运算符两侧的类型不一致的情况下,如果左侧变量类型的级别高,则右侧的数据被转化为与左侧相同的高级数据类型后赋给左侧变量;否则,需要使用强制类型转换运算符。选项A是float常量;选项B是double

型;选项C是一个字符型常量,需要注意,这里的“/”是转移字符,“/r”表示回车,并不是字母r;选项D中433超过了byte类型的范围,所以是错误的。

35.在软件设计中,不属于过程设计工具的是( )。

(分数:2.00)

(过程设计语言)

C.N-S图

图 √

解析:[解析] 数据流图DFD,是结构化分析方法最主要的一种图形工具,不属于过程设计工具。

二、{{B}}填空题{{/B}}(总题数:15,分数:30.00)

36.算法的复杂度主要包括{{U}} 【1】 {{/U}}复杂度和空间复杂度。

(分数:2.00)

填空项1:__________________ (正确答案:时间)

解析:[解析] 算法的复杂度主要指时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。

37.数据的逻辑结构在计算机存储空间中的存放形式称为数据的{{U}} 【2】 {{/U}}。

(分数:2.00)

填空项1:__________________ (正确答案:存储结构 或 物理结构 或 物理存储结构)

解析:[解析] 时间数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构。

38.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中{{U}}

【3】 {{/U}}的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。

(分数:2.00)

填空项1:__________________ (正确答案:驱动模块)

解析:[解析] 由于模块不是一个独立的程序,不能单独运行,因此,在进行模块测试时,还应为每个被测试的模块另外设计两类模块:驱动模块和承接模块。其中驱动模块的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果;承接模块的作用是模拟被测试模块的下层模块。通常,承接模块有多个。

39.一棵二叉树第六层(根结点为第一层)的结点数最多为{{U}} 【4】 {{/U}}个。

(分数:2.00)

填空项1:__________________ (正确答案:32)

解析:

[解析] 二叉树的一个性质是,在二叉树的第k层上,最多有2k-1(k≥1)个结点。由此, 2等于32。所以答案为32。

40.问题处理方案的正确而完整的描述称为{{U}} 【5】 {{/U}}。

(分数:2.00)

填空项1:__________________ (正确答案:算法 或 程序 或 流程图)

解析:[解析] 算法是问题处理方案正确而完整的描述。

简单性首先表现在自身系统的精练,它的基本解释程序和{{U}} 【6】 {{/U}}占内存40KB,附加的基本标准类库和支持线程程序占175KB。

(分数:2.00)

填空项1:__________________ (正确答案:类库)

解析:[解析] 本题考查Java语言的特点,Java简单性首先表现在自身系统的精练,它的基本解释程序和类库占内存40KB,附加的基本标准类库和支持线程程序占175KB,力图用最小的系统完成尽可能多的功能。

42.如果有一个类MyFrame是Frame的子类,能够被不同包中的类所使用,请写出该类的声明头:{{U}} 【7】

{{/U}}。

(分数:2.00)

填空项1:__________________ (正确答案:public class MyFrame extends Frame)

解析:[解析] 本题考查对类声明的理解。类声明的格式为:[修饰符] class类名 [extends父类名]

[implements类实现的接口列表]其中[]括起来的内容为可选项。关键字class是类定义的开始,类名应符6-1

合标识符命名规则。关键字extends指明该类是子类,它的父类名紧跟其后,子类与父类之间有继承关系。关键字implements指明该类实现的接口,后跟接口名列表。要注意掌握类声明的概念,虽然很简单,但容易漏掉有关修饰符。

43.在Java中所实现的多维数组,实际上是由一维数组构成的{{U}} 【8】 {{/U}}。

(分数:2.00)

填空项1:__________________ (正确答案:数组的数组)

解析:[解析] 本题考查多维数组的概念。 Java中没有多维数组这种数据结构,只有一维数组,在Java中实现的所谓的多维数组,实际上是由一维数组“焊接”而成的“数组的数组”。也就是说,某个一维数组的元素是另一个一维数组,则称之为二维数组,依次类推,一维数组的多次嵌套定义,构成了多维数组。

中的继承机制之所以能够降低程序的复杂性,提高编程的效率,主要是因为它使代码可{{U}} 【9】

{{/U}}。

(分数:2.00)

填空项1:__________________ (正确答案:重用或复用)

解析:[解析] 本题考查Java中的继承机制。继承性是面向对象方法的一个重要基本特征,它使代码可以重用,可降低程序复杂性。 Java语言中,所有的类都是通过直接或间接地集成er而得到的。

45.每个Applet程序必须有一个类是{{U}} 【10】 {{/U}}类的子类。

(分数:2.00)

填空项1:__________________ (正确答案:Applet)

解析:[解析] 本题考查Applet的概念。Applet是考试重点内容,涉及知识点较多,注意全面复习。生成Applet必须创建Applet类的子类, Applet的行为框架由Applet来决定。所以每个 Applet程序必须有一个类是Applet类的子类。

46.线程在生命周期中要经历5种状态,分别是新建伏态、可运行状态、运行状态、{{U}} 【11】 {{/U}}状态和终止状态。

(分数:2.00)

填空项1:__________________ (正确答案:阻塞)

解析:[解析] 本题考查线程的生命周期。线程一旦创建,就开始了它的生命周期。线程的声明周期主要分为:新建状态(new),线程创建后处于该状态;可运行状态(Runnable),新建的线程调用start()方法,将使线程的状态从 New转换为Runnable;运行状态(Running),运行状态使线程占有CPU并实际运行的状态;阻塞状态(Blocked),导致该状态的原因很多,注意区别;终止状态(Dead),线程执行结束的状态,没有任何方法可改变它的状态。

47.下列程序创建了一个线程并运行,请填空,使程序完整。 public class ThreadTest{ public static void

main(String args[]){ Hello h=new Hello(); {{U}} 【12】 {{/U}}; (); } } class Hello implements

Runnable{ int i; public void run(){ while(true){ n("Hello"+i++); if(i==5)

break; } } }

(分数:2.00)

填空项1:__________________ (正确答案:Thread t=new Thread(h))

解析:[解析] 本题考查线程的概念。线程是比较抽象的概念,但属于考试重点内容。题目程序的功能是按要求实现输出,通过实现Runnable接口来创建线程。 Runable接口的定义为: public interface

Runnable{void run();}当实现Runnable接口的类的对象用来创建线程以后,该线程的启动将使得对象的run()方法被调用。题目缺少线程创建的语句,因此应该填写:Thread t=new Thread(h),该语句用来以 Hell的实例对象创建t线程,语句“tan()使线程启动。run()方法中用来实现输出“Hello”字符串,在这里while(true)语句始终成立,用break语句来跳出循环。

的事件处理机制包括{{U}} 【13】 {{/U}}、事件和事件监听者。

(分数:2.00)

填空项1:__________________ (正确答案:事件源)

解析:[解析] 本题考查Swing的事件处理机制。Swing的事件处理机制继续沿用了AWT的事件处理机制,基本的事件处理需要使用 包中的类,但包中也增加了一些新的事件及

其监听接口。事件处理机制中仍旧包含3个角色:事件源、事件和事件处理者(事件监听程序)。事件源就是 Swing的各种构件,与之对应的就是事件监听器接口。

49.请阅读下列程序代码,然后将程序的执行结果补充完整。 程序代码: public class

throwsException{ static void Proc(int sel) throws ArithmeticException,ArrayIndexOutOfBoundsException{ n("In Situation"+sel);

if(sel==0){ n('no Exception caught"); return; } else if(sel==1){ int

iArray[]=new int[4]; iArray[1]=3; } } public static void main(String args[]){ try{ Proc(0);

Proc(1); } catch(ArrayIndexOutOfBoundsException e){ n("Catch"+e); }

finally{ n("in Proc finally"); } } } 执行结果: In Situation 0 no Exception

caught {{U}} 【14】 {{/U}} in Proc finally

(分数:2.00)

填空项1:__________________ (正确答案:In Situationl)

解析:[解析] 本题考查考生阅读Java程序的能力。题目程序看似复杂,但流程非常简单。程序的public类是throwsExeeption,类中定义了Proc(int sel)方法。程序入口是main()方法,使用try-catch-finally来捕获 ArithmeticException和ArrayIndexOtaOfBounds- Exception异常,这两个异常是关于算术异常或数组索引越界的异常。执行Proc(0)时,输出In Situation 0 和 no Exception caught两条信息;执行Proc(1)时,输出In Situationl 和 in Proc finally两条信息。整个程序并未发生异常。

50.请写出下面程序的运行结果: public class Test extends TT{ public static void main(String

args[]){ Test t=new Test("Tom."); } public Test(String s){ super(s); ("How are

you?"); } public Test(){ this("I am Jack."); } } class TT{ public TT(){ ("Hi!"); }

public TT(String s){ this(); ("I am"+s); } } 结果:{{U}} 【15】 {{/U}}。

(分数:2.00)

填空项1:__________________ (正确答案:Hi ! I am are you?)

解析:[解析] 本题考查类的继承。从main()方法作为程序入口,首先执行Test t=new Test(“Tom.”)语句,此时将调用 Test(String s)构造方法,而进入此方法后由 super(s)语句来调用(String s),而执行 this()语句将会调用(),因此,首先由 ("Hi!")语句执行输出。接下来才是("I am"+s)语句,然后才是 ("How are you?"),最后程序结束。要注意区分this和super所对应的类。


本文标签: 线程 选项 解析 方法