JAVA期末复习题及答案.docx
《JAVA期末复习题及答案.docx》由会员分享,可在线阅读,更多相关《JAVA期末复习题及答案.docx(18页珍藏版)》请在冰豆网上搜索。
JAVA期末复习题及答案
一、选择题
1.每个使用AWT组件的程序必须有一个(D)
A)按钮B)标签
C)菜单D)容器
2.和AWT相比,Swing有很多特点。
下列不是Swing的特点?
(B)
A)100%纯Java实现B)依赖平台
C)采用可插入的外观感觉D)采用“模型—视图—控制器”体系结构
3.以下声明,错误的是()
A)inta[]=newint[10]
B)inta[10]
C)String[]a;a=int[10]
D)Stringa[]={“a”,”b”,”c”,”hello”}
4.编译和运行下面的代码时将会发生什么情况:
(B)
classTest{
staticintmyArg=1;
publicstaticvoidmain(String[]args){
intmyArg;
System.out.println(Test.myArg);}}
A)输出结果为0;
B)输出结果为1;
C)不能编译成功,因为局部变量的名字和静态变量的名字相同
D)不能编译成功,因为局部变量在使用前必须初始化。
5.下列说法中错误的是()
A)在Windows系统下,Frame窗口是有标题,边框的
B)Frame的对象实例化后,没有大小,但是可以看到的
C)通过调用Frame的setSize()方法来设定窗口的大小
D)通过调用Frame的setVisible(true)方法来设置窗口为可见
6.AWT事件分为低级事件和高级事件,下列属于低级事件的是(D)
A)鼠标的进入B)拖放
C)窗口关闭D)以上都是
7.布局管理器使容器中各个构件呈网格布局,平均占据容器空间。
(C)
A)FlowLayoutB)BorderLayout
C)GridLayoutD)CardLayout
8.Applet的编写时,至少需要实现的是()
A)init()B)start()
C)paint()D)以上中的任意一个
9.下列哪项不是子类继承方法的规则:
()
A)能够继承那些声明为public和protected的成员方法。
B)能够继承同一包中的默认修饰符的成员方法。
C)不能继承那些声明为private的成员方法。
D)继承超类的构造方法。
10.下列说法中,错误的一项是()
A)线程是程序中的一个执行流
B)多线程是程序中的多个执行流
C)线程是进程的一次动态执行过程
D)进程是程序的一次动态执行过程
11.下列说法中错误的一项是()
A)通常编写GUI程序时,使用的是Component类的子类
B)Component类封装了构件通用的方法和属性
C)类Component是许多常用构件类的父类,但是Container不是其子类
D)许多常用的构件类都继承了Component的成员方法和变量
12.请问所有的例外类皆继承哪一个类?
()
A)java.io.ExceptionB)java.lang.Throwable
C)java.lang.ExceptionD)java.lang.Error
13.已创建好一个Frame类的对象myfrm,要为其设置标题,需要调用方法?
(B)
A)getTitle()B)setTitle()C)getState()D)setState()
14.在Applet生命周期中,下面哪个方法是在装载Applet时被调用?
()
A)destroy()B)init()C)start()D)stop()
15.java.awt包提供了基本的java程序的GUI设计工具,包含构件、容器和()
A)布局管理器B)数据传送器
C)图形和图象工具D)用户界面构件
16.以下TextArea对象不能注册下列哪些接口?
()
A)TextListenerB)ActionListener
C)MouseMotionListener和MouseListenerD)ComponentListener
17.下面关于Applet的说法正确的是()
A)Applet也需要main方法
B)Applet必须继承自java.awt.Applet
C)Applet能访问本地文件
D)Applet程序不需要编译
18.下列说法中错误的一项是()
A)一个线程是一个Thread类的实例
B)线程从传递给线程的Runnable实例的run()方法开始执行
C)线程操作的数据来自Runnable实例
D)新建的线程调用start()方法就能立即进入运行状态
19.下列说法正确的是()
A)线程的终止一般可通过两种方法实现:
自然撤消(线程执行完)或是被停止(调用stop()方法)
B)一个暂时终止运行的线程(例如,睡眠或阻塞)在排除了终止原因后直接运行
C)一个线程因为输入输出操作被阻塞时,执行resume()方法可以使其恢复就绪状态
D)调用了suspend()方法,也可以使线程进入死亡状态
20.下列哪一个不属于Java线程模型的组成部分?
()
A)虚拟的CPU
B)虚拟CPU执行的代码
C)代码所操作的数据
D)执行流
21.java.lang.ThreadGroup类的作用为()
A)使任何类都可以为线程提供线程体
B)定义了线程同步与交互的方法
C)提供了线程组或组中的每个线程进行操作的方法
D)以上都不是
22.当输入一个字节流时,要()
A)实现DataInput接口B)实现ObjectInput接口
C)Serializable接口D)继承Reader抽象类
23.提供处理文件I/O流的类的包是()
A)java.io
B)java.file
C)
D)java.util
24.过滤字节输出流都是抽象类的子类。
()
A)InputStream
B)OutPutStream
C)FilterInputStream
D)FilterOutputStream
25.非字符输入流都是抽象类的子类。
()
A)InputStream
B)OutputStream
C)FilterInputStream
D)FilterOutputStream
26.若文件是RandomAccessFile的实例file,并且其基本文件长度大于0,则下面的语句实现的功能是()
file.seek(file.length()-1);
A)将文件指针指向文件的第一个字符后面
B)将文件指针指向文件的最后一个字符前面
C)将文件指针指向文件的最后一个字符后面
D)会导致seek()方法抛出一个IOException
27.关于字节I/O流,下列叙述不正确的是()
A)字节数据来自于二进制文件
B)DataOutStream的方法flush()的功能是清空输出流,并把缓冲全部内容写入输出流中
C)字节输入流首先要实现DataInput接口
D)所有的字节输出流都继承于Writer类
28.文件类是java.io包中的()
A)文件流类
B)字节流类
C)对象流类
D)非流类
29.java.lang.StringBuffer类的引入,主要是为了()
A)提高数据传送的效率
B)精简数据传送的操作
C)进行数据替换
D)数据传送安全
30.下列说法中错误的一项是()
A)通常编写GUI程序时,使用的是Component类的子类
B)Component类封装了构件通用的方法和属性
C)类Component是许多常用构件类的父类,但是Container不是其子类
D)许多常用的构件类都继承了Component的成员方法和变量
31.下列说法错误的是()
A)与Swing组件库相比,AWT组件非常依赖底层平台
B)Component类是所有AWT组件的根
C)Swing组件可以完全取代AWT组件
32.每个使用Swing组件的程序必须有一个()
A)按钮B)标签C)菜单D)容器
33.和AWT相比,Swing有很多特点。
下列不是Swing的特点?
()
A)100%纯Java实现
B)依赖平台
C)采用可插入的外观感觉
D)采用“模型—视图—控制器”体系结构
34.下列说法中,正确的一项是()
A)AWT的高级事件依赖于触发此类事件的类,可以和特定的动作相关联
B)AWT的高级事件依赖于触发此类事件的类,可以不和特定的动作相关联
C)AWT的低级事件是在构件或者容器上发生的事件
D)AWT的低级事件是基于语义的事件,不一定和特定的动作相关联
35.下列说法中错误的一项是()
A)使用继承Thread类创建线程,可以直接调用线程的方法
B)通过实现Runnable接口创建线程,体现了面向对象的思想
C)Thread类从面向对象的角度看,是虚拟CPU的封装
D)通过实现Runnable接口创建线程,会影响Thread类的体系
36.下面哪个不是java的关键字()
A)nullB)new
C)sizeofD)transient
37.下列说法中错误的一项是()
A)一个线程是一个Thread类的实例
B)线程从传递给线程的Runnable实例的run()方法开始执行
C)线程操作的数据来自Runnable实例
D)新建的线程调用start()方法就能立即进入运行状态
38.Panel和Applet的默认的布局管理器是()
A)CardLayoutB)BorderLayoutC)FlowLayoutD)GridLayout
39.用AWT组件实现单选按钮功能,需要使用组件?
()
A)CheckboxB)CheckboxGroupC)Checkbox和CheckboxGroupD)Choice
40.Applet可以做下列哪些操作()
A)调用用户计算机上的系统去执行其他的应用程序
B)访问用户的文件系统
C)装入用户计算机上以其他程序语言所写的应用程序或函数库
D)读取客户端部分系统变量
41.下列复选框构造方法,错误的是()
A)add(newCheckbox("one",false));
B)add(newCheckbox("one",null,true));
C)add(newCheckbox("two"));
D)add(newCheckbox("one",true));
42.下列不属于Applet编写步骤的是()
A)引入需要的类和包B)定义一个Applet类的子类
C)实现Applet类的某些方法D)重写Applet的paint()方法
43.下列包封装抽象窗口工具包,提供管理用户图形界面功能。
()
A)java.security.*B)java.io.*C)java.util.*D)java.awt.*
44.实现下列哪个接口可以对MenuItem进行监听和处理?
()
A)ActionListenerB)FocusListener
C)MouseMotionListenerD)WindowListener
45.在Applet程序占用的屏幕上显示文字、图形等信息,应使用的方法是()
A)paint()B)init()C)start()D)destroy()
46.下列哪项不是子类继承方法的规则:
()
A)能够继承那些声明为public和protected的成员方法。
B)能够继承同一包中的默认修饰符的成员方法。
C)不能继承那些声明为private的成员方法。
D)继承超类的构造方法。
47.下列关于小应用程序说法错误的是()
A)用户所编写的小应用程序的类必须为public
B)用户所编写的小应用程序必须为java.applet.Applet的子类
C)用户所编写的小应用程序的类名称可以与它所在的文件名不相同
D)用户所编写的小应用程序可以不在浏览器上运行
48.下列是创建一个标识有“关闭”按钮的语句。
()
A)TextFieldb=newTextField("关闭");B)TexAreab=newTexArea("关闭");
C)Buttonb=newButton("关闭");D)Checkboxb=newCheckbox("关闭");
49.浏览器在关闭时,将被调用的Applet方法是()
A)只有stop()方法B)只有destroy()方法
C)先调用stop(),然后再调用destroy()D)不调用Applet的任何方法
50对于构造函数,下列叙述不正确的是( )。
A)构造函数也允许重载。
B)子类无条件地继承父类的无参构造函数。
C)子类不允许调用父类的构造函数。
D)在同一个类中定义的重载构造函数可以相互调用。
51下列事件监听器中,无法对TextField对象进行事件监听和处理的是()
A)ActionListenerB)FocusListener
C)MouseMotionListenerD)ChangeListener
52请问所有的例外类皆继承哪一个类?
()
A)java.io.ExceptionB)java.lang.Throwable
C)java.lang.ExceptionD)java.lang.Error
53.线程同步中,对象加锁应该注意()
A)返还对象的锁
B)用synchronized保护的共享数据必须是私有的
C)Java中对象加锁具有可重用性
D)以上都对
54.阅读下列程序:
()
classThreadTestextendsThread{
publicstaticvoidmain(String[]args){
Threadt=newThread(this);
t.start();}
publicvoidrun(){
System.out.print("Athreadtest.");}}
对该程序而言,正确结论是()
A)该程序能够通过编译并打印输出“Athreadtest.”
B)该程序能够通过编译,但运行时将不调用ThreadTest类中的run()方法,因此不产生任何输出
C)该程序存在编译错误,因为在main()方法中不能使用this指针
D)上述选项都不正确
55.Thread类的方法中,toString()方法的作用是()
A)只返回线程的名称
B)返回当前线程所属的线程组的名称
C)返回当前线程对象
D)返回线程的字符串信息
56.每个使用AWT组件的程序必须有一个()
A)按钮B)标签
C)菜单D)容器
57线程生命周期中正确的状态是()
A)新建状态运行状态和终止状态
B)新建状态运行状态阻塞状态和终止状态
C)新建状态就绪状态运行状态阻塞状态和终止状态
D)新建状态可运行状态运行状态恢复状态和终止状态
二、填空题
1.paint()方法带有一个参数,它是java.awt.______________类的一个实例。
这个参数总是建立该Applet的panel的图形上下文。
能用这个上下文在的Applet中绘图或写入文本。
2.Java的图形界面技术经历了两个发展阶段,分别通过提供AWT开发包和___________开发包来体现。
3.所有用户界面类的父类是java.awt包中的__________。
4.JavaApplet应用程序的编写和执行共分4步进行:
编写源代码、编写HTML文件调用该小程序、__________________、解释执行。
5.InputStreamReader类是以字节输入流作为数据源的____________________。
6.以下是一个对数据文件进行缓冲输入操作的语句,在语句的下划线处,请填上适当的内容:
DataInputStreamdin=newDataInputStream(new_________________________
(newFileInputStream("employee.dat")));
7.在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为_______________________________。
8.如果一个Java源程序文件中定义有4个类,则使用Sun公司的JAK编译器javac编译该源程序文件,将产生4个文件名与类名相同而扩展名为______________的字节码文件。
9.抛出异常的程序代码可以是______________,或者是JDK中的某个类,还可以是JVN。
10任何一个java程序都默认引入了一个包,这个包的名字叫__________________。
11.抽象窗口工具包________提供用于所有Javaapplets及应用程序中的基本GUI组件。
12.SwingGUI使用两种类型的类,即GUI类和_____________支持类。
13.布局管理器中将构件从上到下、从左到右进行的排列的布局管理器是___________。
14.在AWT包中,创建一个具有10行、45列的多行文本区域对象ta的语句为____________________________。
15.Java中流的实现是在____________的类层次结构内部定义的。
16.串行化对象的方法有两种:
把对象写到对象流和_________________________。
17.当需要提高读入字符串的效率,且要对字符串进行添加、删除、插入等操作时,最好使用___________________类。
18在java.io包中有某个类同时实现了DataInput接口和DataOutput接口,这个类是________________________________。
19.Java中,新建的线程调用start()方法,如mythread.start(),将使线程的状态从New(新建状态)转换为___________________。
20.Java语言中,有一个类是所有类或接口的父类,这个类的名称是________________。
21.布局管理器中将构件从上到下、从左到右进行的排列的布局管理器是【11】。
22.在AWT包中,创建一个具有10行、45列的多行文本区域对象ta的语句为【14】。
23.布局管理器中将构件从上到下、从左到右进行的排列的布局管理器是【11】。
24.Java中流的实现是在【9】的类层次结构内部定义的。
25.字符常量是用单号括起来的一个字符,用双撇号括起来的是【7】。
26.下面的语句是声明一个常量并赋值:
27.final属性是专门定义【8】变量的保留字。
28.在面向对象的程序设计中,类描述的是具有相似性质的一组【6】。
29.Java通过过滤流对I/O访问提供【12】机制。
30.根据程序的构成和运行环境的不同,Java源程序分为两类,即【14】程序和JaveApplet程序。
三、判断题程序填空:
1.抽象类必须包含抽象方法。
()
2.接口可以有构造方法。
()
3.静态方法不可以访问固有的变量this.()
4.非运行时异常必须被处理。
()
5.一个组件可以使用多个事件监听器。
()
6.接口中定义的变量都是static和final.。
()
7.Java把数组当作对象看待()
8.构造方法可以有void返回类型。
()
9.使用UDP协议传输数据时,每个被传输的数据报的长度没有限制。
()
10.静态方法能直接访问类中定义的实例变量。
()
11抽象类必须包含抽象方法。
()
12.接口可以有构造方法。
()
13.静态方法不可以访问固有的变量this.()
14.非运行时异常必须被处理。
()
15.一个组件可以使用多个事件监听器。
()
16.接口中定义的变量都是static和final.。
()
17.Java把数组当作对象看待()
18.构造方法可以有void返回类型。
()
19.使用UDP协议传输数据时,每个被传输的数据报的长度没有限制。
()
20.静态方法能直接访问类中定义的实例变量。
()
21.JavaApplication程序中,必有一个主方法main(),该方法有没有参数都可以()
22.java命令不区分大小写,而javac命令区分大小写。
()
23.Java语言中,构造方法是不可以继承的。
()
24.使用构造方法只能给实例成员变量赋初值。
()
25.所谓线程同步就是若干个线程都需要使用同一个synchronized修饰的方法。
()
四、读程序,用图形描述程序的运行界面,并说明它能接受的事件及效
果
1importjava.awt.*;
importjava.awt.event.*;
publicclassTestActionEvent2{
publicstaticvoidmain(Stringargs[]){
Framef=newFrame("Test");
Buttonb1=newButton("Start");
Buttonb2=newButton("Stop");
Monitorbh=newMonitor();
b1.addActionListener(bh);b2.addActionListener(bh);
b2.setActionCommand("gameover");
f.add(b1,"North");f.add(b2,"Center");
f.pack();f.setVisible(true);}}
classMonitor2implementsActionListener{
publicvoidactionPerformed(ActionEvente){
System.out.println("abuttonhasbeenpressed,therelativeinfois:
"+e.getActionCommand());}}
2importjava.applet.Applet;
importjava.awt.*;
importjava.awt.event.*;
publicclassTextFieldExampleextendsAppletimplementsActionListener{
LabeloutputLbl=newLabel("");
TextFieldinputTfd=newTextField(10);
ButtoncopyBtn=newButton("复制");
publicvoidinit(){
inputTfd.setText("");
outputLbl.setText("");
add(inputTfd);
add(copyBtn);
add(outputLbl);
copyBtn.addAct