JAVA期末复习资料2doc.docx
《JAVA期末复习资料2doc.docx》由会员分享,可在线阅读,更多相关《JAVA期末复习资料2doc.docx(30页珍藏版)》请在冰豆网上搜索。
JAVA期末复习资料2doc
一、判断题
1、在Java程序中发生异常时,JVM会找到每个符合条件的catch都执行一次。
()
2、在Java程序中异常分为运行吋异常和非运行吋异常,非运行异常必须进行处
理()
3、异常处理的try-catch块后必须有finally块。
()
4、异常处理器的排列次序影响处理异常的方法。
()
5、用catch(Exceptionexception)语句可以捕获所有异常和错误。
()
6、启动多线程必须调用start()方法,如果调用run()方法则没有启动新的线
程()
7、run()方法是运行线程的主体,若run方法运行结束,线程就消亡了。
()
8、线程可以用yield()方法使同优先级的线程运行。
()
9、一个线程创建并启动后,它将执行自己的run()方法。
()
10、线程可以用yicldO方法使较低优先级的线程运行。
()
11、每个Java线程的优先级都设置在常数「12之间,默认的优先级设置为常数
6o()
12>JFrame,JPanel,JApplet和JButton四种组件都属于容器组件。
()
13、BorderLayout是面板(JPanel)的缺省布局管理器。
()
14>BorderLayout最多可以使用5个组件。
()
15、一个面板(JPanel)不能被加入另一个面板(JPanel)中。
()
16、菜单需要一个JMenuBar对象,以使他们能被添加到JFrameo()
17、标签(JLabel)可以在屏幕上显示一个字符或一幅图片。
()
18、BorderLayout是容器javax.swing.JFrame默认的布局管理器。
()
19、JTcxtArca可以用來接收多行文本的输入。
()
20、在Java坐标系统中,X值从左向右增加。
()
21、BorderLayout布局管理器把组件排列在北、南、东、西和中间区域。
()
22、边界布局管理器(BorderLayout)把容器分成5个区域,每个区域只能放一个组件。
()
23、一个组件可以注册一个或多个事件监听器。
()
24、通过类ja\anet・URL中的成员方法可获得网络资源定位器的相关信息()
25>Socket的实例对象调用其成员方法getlnputStream来获得该Socket所对应的输入流。
()
26、数据报(DatagraniPackct)传输是不可靠的,无法保证包按顺序到达。
()27当Socket连接上面的传输结束后,服务器执行Socket的shutdown方法来关闭连接。
()
二、选择题
1、下说法屮错误的一项是()。
A、线程一旦创建,则立即自动进行
B、线程创建后需要调用start()方法,将线程置于可运行状态
C、调用线程的start()方法后,线程也不一定能立即执行
D、线程处于可运行状态,意味着它可以被调度
4、线程开始运行吋,是从下列哪一个方法开始执行的()
D、init()
D、Runnable()
A、main()B、start()C、run()
5、Runnable接口中定义的方法是()
A、start()B>init()C>run()
6、下列说法中不正确的一项是()o
A、多线程并发执行吋,各个线程中语句的执行顺序是确定的
B、多线程并发执行时,线程Z间的相对执行顺序是确定的
C、线程执行顺序的不确定性会导致执行结果的不确定性
D、线程执行顺序的不确定性会破坏共享数据的一致性
7、下列是继承Thread类后得到的子类,请选择正确的一项。
()
publicvoidrun()
//-
//-
}
8、
A)
C)
9、
A)
B)
C)
D)
下面那一个函数是线程的入口函数?
(privatevoidrun()B)
publicvoidstart()D)
下列方法中可以用来创建一个新线程的是—。
)
public
public
void
void
run()begin()
实现java.lang.Runnable接口并重写start()方法实现java.lang.Runnable接口并重写run()方法继承java.lang.Thread类并重写run()方法实现java.lang.Thread类并实现start()方法
resume()
10>Thread类中能运行线程体的方法是A)start()B)
init()D)run()
11、在java程序中,下列关于线程的说法错误的是()
A、线程启动调用start方法B、线程的主体是run方法
C、线程运行中调用sleep方法可以进入阻塞状态
D、在java中,优先级的数值为1的线程可以抢占优先级为5的线程的资源
12、若编译和运行下列代码,岀现的结果将是()
publicclassMyAddcxtcndsThread{
staticinttotal=10;
intn;
publicMyAdd(intn)
{this.n=n;}
publicvoidnan(){
try{
sleep(n);
total二total+n;
System,out.println(total);
}
catch(Exceptione){
System,out.printin("EXCEPTION!
”);
}
}
publicstaticvoidmain(String[]args){
MyAddtl=newMyAdd(3000);
MyAddt2=newMyAdd(1000);
tl.start();
t2.start();
A、1010,4010B>3010,4010
C、1010,3010D、3010,1010
13、若编译和运行下列代码,岀现的结果将是
publicclassMyThrcadimplcmentsRurrnable{StringmyString="Yes“;publicvoidrun(){
this.myString二〃No“;
}publicstaticvoidmain(String[]args){
MyThreadt=newMyThread();
newThread(t).start();
for(inti=0;i<10;i++)
System.out.print(t.myString);
}
}
A>打卬yesyesyesyesyesyesyesyesyesyesB^打印nononononono
nononono
C、打印yesnoyesnoyesnoyesnoyesnoD、打印结果无法确定
14、下面关于Java中线程的说法不正确的是()?
A)调用join()方法可能抛出异常InterruptedExceptiono
B)sleep()方法是Thread类的静态方法。
C)调用Thread类的sleepO方法可终止一个线程对象。
D)线程启动后执行的代码放在其run方法屮。
15、下列关T*try和catch子句的描述中,错误的一项是()。
A、不同的catch代码段是不同的作用域,但是可以访问相互之间定义的局部变量
B、如果没有异常产生,则所有的catch代码段都被略过不执行
C、try代码段后跟有一个或多个catch代码段
D、异常总是由距离产生异常最近的匹配catch代码段处理
16、下列关于抛岀异常的描述中,错误的一项是()。
A、异常可以由try代码段中的语句抛出
B、异常可以从被try代码段中调用的方法中抛岀
C、异常的抛岀并不影响代码段的执行顺序
D、异常述可能产生于数组下标越界及Java虚拟机内部的错误等
17、下列描述中,正确的一项是()。
A、异常机制可以用于流程控制
B、finally代码段在发生异常吋不一定必须执行
C、在catch代码段屮可以使用return语句來返回到异常抛出点
D、可以把catch到的异常对象再次抛出,使上层try一catch结构继续处理该异常事件
18、下列描述中,哪一项不属于finally语句应该执行的功能()
A、释放资源B、关闭文件C、分配资源D、关闭数据库
19、如果一个程序段中有多个catch,则程序会按如下哪种情况执行?
()
A、找到合适的异常类型后继续执行后面的catch
B、找到每个符合条件的catch都执行一次
C、找到合适的异常类型后就不再执行后面的catch
D、对每个catch都执行一次
20>对于异常处理语句try-catch,b"面那句话不正确?
()
A、一个符合条件的catch的处理语句中没有break语句,则执行后会继续执行后续catch
B、不管有没有捕获异常,finally部分都会被执行
C、找到合适的异常类型后就不再执行后面的catch
D、应该先处理子异常类,再处理父异常类。
21、下列哪种操作不会抛出异常?
()
A)浮点数除0B)浮点数乘0
0打开不存在的文件D)用负数索引访问数组
A、catch、try
C、try、exception
23、异常包含下列那些内容?
(
A)程序中的语法错误
B、
D、
try、catchexception、try
B)程序的编译错误
22、程序员将可能发生异常的代码放在()块中,后面紧跟着一个或多个()块。
()
C)程序执行过程中遇到的事先没有预料到的情况
D)程序事先定义好的可能岀现的意外情况
24、有下列程序
classTestException
{
classMyExceptionextendsException{}publicvoidtestMethod()throwsMyException{}publicvoidtest()
{
testMethod();
}
}
在publicvoidtest()后加上哪一句可以使编译不出错。
()
A>throwMyException
B、throwsMyExccption
C、thrownewMyException()
D、throwsnewMyException()
25、设有以下程序段
classTestException
{
publicstaticvoidmain(String[]args)
{
try{
return;
Jfinally{
System・out・printin("finally");
}
}
}
程序编译并执行,其结果将是()
A、程序执行,但没有任何输出
B、程序输出finally
C、程序编译时出错,提示缺少catch
D、程序编译吋岀错,提示final!
y语句无法访问到。
26、用文件字节输出流对文件进行写操作时,需要先创建文件输出流对象,文件输岀数据流的构造方法是publicFileOutputStream(Stringname,Booleanappend)throwsFileNotFoundException,当参数append的值为true时,表示()
A、创建一个新文件
B、在原文件的尾部添加数据
C、覆盖原文件的内容
D、在原文件的指定位置添加数据
27、编译和运行下面的应用程序,并在命令行界面输入12345,则回车后屏幕输
岀的结果是()o
publicclassA{
publicstaticvoidmain(Stringargs[])throwsIOException{BufferedReaderbuf二newBufferedReader(newTnputStreamReader(System,in));
Stringstr=buf.rcadLincO;
intx=lnteger・parselnt(str);
System,out.printin(x%1000);
}
}
A)345B)5C)123D)12345
28、下列说法中,错误的一项是()。
A、Java系统的标准输入对象是System,inB>打开一个文件时不可能产生
IOException
C、使用File对象可以判断一个文件是否存在D、使用F订e对象可以判断一个目录是否存在
29、下面的程序段的功能是()。
Filefilel=newFile(,ze:
\\xxx\\yyy,z);
filel.mkdir();
B)生成目录:
e:
\xxx\yyy
D)以上说法都不对
A)在当前目录下生成子目录:
\xxx\yyy
C)在当前目录下生成文件xxx.yyy
30、下列叙述中,错误的是()
A)File类能够存储文件
B)File类能够读写文件
C)File类能够建立文件
D)File类能够获取文件口录信息31、下列哪个是JAVA程序和数据库连接的一种机制()
A)URLB)JDBCC)SOCKETD)RMI32、关于JDBC访问数据库的说法错误的是:
A)建立数据库连接吋,必须加载驱动程序,可采用Class.forNameO实现
B)用于建立与某个数据源的连接可采用DrivcrManagcr类的gctConnection方法
0建立数据库连接时,必须要进行异常处理
D)JDBC中查询语句的执行方法必须采用Statement类实现
33、定义Java.Applet程序吋,必须有的import语句是()。
A、importjava・awt.event;B、importjava.util.*;
C、importjava.applet.Applet;D、importjava・lang.*;
34、以下哪个方法不属于Applet小程序生命周期中的方法?
()
A、initB、mainC、destroyD、stop
35、下列说法中,错误的一项是()。
A、使用FlowLayout在容器屮放置组件的策略是:
从上到下、从左到右
B、使用FlowLayout进行布局管理时,组件的大小采用的是其最佳尺寸
C、使用FlowLayout进行布局管理时,不能调节组件之间的距离
D、用FlowLayout管理的组件随容器大小变化的变化规律是:
组件大小不变,组件之间的相对位置改变
36、在类中若要处理ActionEvent事件,则该类需要实现的接口是()。
A>ActionListenerB>RunnableC、SerializableD>Event
37、下列说法中,错误的一项是()o
A、内部类是被定义于另一个类中的类
B、使用内部类实现监听器,在编程时比较容易实现
C、内部类对象可以访问外部类的成员方法和变量,包括私有成员
D、由于内部类定义于另一个类,因此不适用于AWT的事件处理机制
38、选择正确的语句填入下列程序的横线处。
()
importjavax.swing.*;
publicclasscx28
{
publicstaticvoidmain(String[]args)
{
JFramef=newJFrame("ex28”);
JMcnuBarmb=newJMcnuBar();
JMenuml=newJMenu(“menul”);
JMenum2二newJMenu("menu2”);
mb.add(ml);
mb.add(m2);
f.setSize(300,100);
f.setVisible(true);
}
A>setMenuBar(mB);B、mb.setMenuBar();
C、f.setMenuBar(mB);D、mb.setMenuBar(f);
39、下列说法哪个是不正确的?
()
A、一个组件可以注册多个事件监听器
B、一个监听器只能监听一个组件
C、一个组件可以引发多种事件
D、一个监听器可以监听处理多种事件
40、下面说法错误的是()
A)单击CheckBox(复选框)产生ItemEvent事件,并由ItemListener处理。
B)处理JButton和JTextField事件监听器接口都是ActionListener。
C)一个面板(JPanel)可以加入到另一个面板(JPanel)中。
D)在BordcrLayout屮,添加到NORTH区的两个按钮将并排显示。
41、下面说法错误的是:
()
A)单击JCheckBox(复选框)产生ItemEvent事件,并由ItemListener处理。
B)处理JButton和JTextField事件监听器接口都是ActionListener。
C)处理鼠标事件的事件监听器接口只有MouseListenero
D)在JTextField和JPasswordFicld屮输入数据后按Enter键会激发一个事件。
42、下列说法哪个是不正确的?
()
A)一个面板(Jpanel)能被加入到另一个面板(Jpanel)中
B)一个监听器只能监听一个组件
C)Frame,Panel,Applet都属于容器组件。
D)Button和TextField都可用ActionListener接口实现事件处理
43、常规菜单是由()、()和菜单项组成。
()
JMenuTtem>JCheckBoxMenuTtem
JButton、JRadioButton
JPopupMenu、JMenultem
JMenuBar>JMenu
44、下列哪一个方法是自动调整窗口的大小()
A>setSize()
B、sctDcfaultClosc()
C、pack()
D、setVisible()
45、下列哪个布局管理器使容器中各个构件呈网格布局,并且平均占据容器的空间?
()
GridLayout
CardLayout
BorderLayout
FlowLayout
46、在AWT组建中用复选框组构件CheckboxGroup实现单选框的功能,但在Swing屮,JAVA语言直接提供了一个单选框,它是()
A)JButtonB)JComboBoxC)JRadioButtonD)JCheckBox
47、下列叙述中,不符合JAVA语言特点的选项是()
A、可移植性和跨平台的特点
B、多线程的并发机制
C、编译器将JAVA源程序转换成机器码
D、Applet是JAVA的特殊应用程序,它嵌入到HTML中,随主页发布到互联网上
48>JPanel和Applet的默认布局管理器是()
A)CardLayout
B)FlowLayout
C)BordcrLayout
D)GridLayout
49下列语句错误的是:
()
A>ServerSocketsvrsoc=newServerSocket(8000);
B、URLurlBasc=ncwURL("http:
//www.zjut.cdu.cn/,,);
C、FileinFile=newFile(“C:
/test,txt”);
D、BufferedReaderbr=newBufferedReader("C:
/test・txt”);
三、程序填空题
1、通过TCP协议方式,定义一个服务器端,端口为5000,要求可以同I]寸连接多个客户端,并且每个客户端在休眠10秒钟Z后退出连接;将下面的程序补齐:
importjava・net.*;
importjava.io.*;
publicclassServerExampleimplements
(1){
privateSocketmsocket;
privateintmid;
public
(2)(Sockets,intid){
m_sockct=s;m_id=id;
}~publicvoid(3){
try{(4).sleep(lOOOO);
System,out.println(〃Socket[〃+m_id+〃]isclosing./z);m_sockct・closcO;
}catch(Exceptione){}
}
publicstaticvoidmain(Stringargs[]){
intn=1;
(5)server二null;
try{
server二new(6)(5000);
System,out.println("Serverstart.,z);
}
catch(IOExccptionc){}
while(true){
try{
System,out.printin(/zWaitNO.〃+n+〃connection•“);
(7)s二server,accept();
ScrvcrExamplct二newScrvcrExamplc(s,n++);
(8)th=newThread(t);
(9).start();
}
catch(TOExceptione){}
}//Endofloop:
while
}//Endofmethod:
main
}
2、下面是一个支持多个客户端交互的程序,请根据注释要求补充、完成代码:
importjava.io.*;
(1)//加载网络API包
publicclassServerThreadextendsThread!
Socketsocket二null;
intdientnum;
publicServerThread(Socketsocket,intnum){
this.socket二socket;
clientnum=num+l;
}
publicvoidrun(){
try{
Stringline;
InputStreamin=
(2)//得到socket的输入流
BufferedReaderis二newBufferedReader(newInputStreamReader(in));PrintWriteros=newPrintWriter(socket.getOutputStream());
//由系统标准输入设备构造BufferedReader对象
BufferedReadersin=newBufferedReader