JAVA语言程序设计 复习题.docx
《JAVA语言程序设计 复习题.docx》由会员分享,可在线阅读,更多相关《JAVA语言程序设计 复习题.docx(43页珍藏版)》请在冰豆网上搜索。
![JAVA语言程序设计 复习题.docx](https://file1.bdocx.com/fileroot1/2023-1/29/8e589f4c-cf1d-40ff-9fae-0aa1af992a82/8e589f4c-cf1d-40ff-9fae-0aa1af992a821.gif)
JAVA语言程序设计复习题
一、选择填空题:
全部为多选题,只有全部正确才能得分。
1.编译java程序的命令是___b_____;运行java程序的命令是____a____;产生java文挡的命令是____d____;查询java类型是否是serializable类型的命令是__c______;产生java安全策略文件的命令是____e____;产生类型归档文件.jar的命令是____f____。
A.javaB.javacC.serialver
D.javadocE.policytoolF.jar
2.在一个java原文件中,import,class,package语句的顺序是____f____。
A.importclasspackage
B.classimportpackage
C.packageclassimport
D.importpackageclass
E.classpackageimport
F.packageimportclass
3.下面叙述正确的有________cde____________。
A.在一个java原文件中只能定义一个class
B.在一个java原文件中只能定义一个interface
C.在一个java原文件中可以定义多个class
D.在一个java原文件中可以定义多个interface
E.在一个java原文件中可以定义多个class和interface
F.在一个java原文件中只能定义publicclass
G.java原文件的前缀一定是所包含类型的名字
4.java程序中程序运行入口方法main的签名正确的有___a_____。
A.publicstaticvoidmain(Stringargs[])
B.staticpublicvoidmain(String[]args)
C.publicvoidstaticmain(String[]args)
D.publicvoidmain(Stringargs[])
5.java程序中程序入口方法main的参数代表命令行输入参数,命令行参数从____a____开始。
A.0B.1C.-1
6.以下属于正确的java注释有____acd____。
A.//ThisiscommentB./*Thisiscomment
C./**Thisiscomment*/D./*Thisiscomment*/
7.以下能作为class,interface,method或variable有效标识符的有______adf__________。
A.ForB.booleanC.23age
D._idE.mynameF.$this_is_a_long_variable_name
8.以下不是java关键字的有___d_____。
A.superC.thisD.NULLE.true
9.byte变量的取值围是___b_____。
A.0-65535B.-128?
?
127C.-256?
?
255D.0-32767
10.以下正确的有____ac____。
A.inti=32;B.floatf=45.32;C.doubled=3.2;
11.根据以下程序选择正确答案___c_____:
publicclassTest{
staticinttotal=10;
publicstaticvoidmain(Stringargs[]){
newTest();
}
publicTest(){
System.out.println("Intest");
System.out.println(this);
inttemp=this.total;
if(temp>5){
System.out.println(temp);
}
}
}
A.编译出错B.运行时有异常C.编译运行都正确
12.下面集合定义正确的有____bd____。
A.Stringstrs[]={‘a’‘b’‘c’};
B.String[]strs={“a”,“b”,“c”};
C.String[]strs=newString{“a””b””c”};
D.Stringstrs[]=newString[]{“a”,“b”,“c”};
E.String[]strs=newString[3]{“a”,“b”,“c”};
13.以下switch表达语句正确的有____ac____。
A.publicvoidswitchTest(charc){
switch(c){…}
}
B.publicvoidswitchTest(longc){
switch(c){…}
}
C.publicvoidswitchTest(bytec){
switch(c){…}
}
D.publicvoidswitchTest(doublec){
switch(c){…}
}
14.面向对象的特性包括___g_____、____i____和____j____。
在java中访问权限的限制由严格到宽松依次是____e____、____h____、____b____和___a_____。
A.publicB.protectedC.identifierD.data
E.privateF.operationsG.inheritanceH.default(nomodifier)
I.encapsulationJ.polymorphism
15.Java方法的参数传递对于基本数据类型如int,byte等,参数传递是____c____;对自定义数据类型,参数传递是___a_____。
A.byreferenceB.bypointerC.byvalueD.byaddress
16.下面程序出错的有___8,10_____行。
1.classStudent{
2.privateStringname;privateintage;
3.publicStudent(){}
4.publicvoidsetName(Stringname){this.name=name;}
5.voidsetAge(intage){this.age=age;}
6.}
7.publicclassStudentTest{
8.publicvoidstaticmain(String[]args){
9.Students=newStudent();
10.s.name=“Hellen”;
11.s.setAge(20);
12.}
13.}
17.方法重载(overloading)必须满足___bce_____。
A.在不同class中定义的方法B.在同一类中定义的方法
C.方法名必须相同D.返回类型必须相同
E.参数一定不同F.参数可以相同
18.对于构造方法(constructor)描述正确的有___ac_____。
A.构造方法没有返回类型B.构造方法一定是public的方法
C.如果我们没有显示定义构造方法,系统会提供一个缺省的
D.构造方法不能重载
19.在java语法中允许___b_____继承,____a____方法不能被继承,______cd__被继承,显示调用父类型的构造方法是通过调用___e_____来完成的。
A.constructorB.singleC.methodsD.fieldsE.super
19.请看以下程序:
classVehicle{
publicvoiddrive(){
System.out.println("Vehicle:
drive");
}
}
classCarextendsVehicle{
publicvoiddrive(){
System.out.println("Car:
drive");
}
}
publicclassTest{
publicstaticvoidmain(Stringargs[]){
Vehiclev;
Carc;
v=newVehicle();
c=newCar();
v.drive();
c.drive();
v=c;
v.drive();
}
}
以下描述正确的有___c_____。
A.对于语句v=c;会导致编译错误B.对于语句v=c;会导致运行错误
C.运行输出:
Vehicle:
drive
Car:
drive
Car:
drive
D.运行输出:
Vehicle:
drive
Car:
drive
Vehicle:
drive
20.程序:
publicclassStaticTest{
static{
System.out.println("Hithere");
}
publicvoidprint(){
System.out.println("Hello");
}
publicstaticvoidmain(Stringargs[]){
StaticTestst1=newStaticTest();
st1.print();
StaticTestst2=newStaticTest();
st2.print();
}
}
什么时候字符串“Hithere”会输出____c____。
A.永远都不会输出B.创建st1和st2时
C.第一次将StaticTest类型装载进存时D.显示调用print方法时
21.以下描述正确的有___bcde_____。
A.abstractclass一定有abstractmethod(s)
B.abstractclass可以没有abstractmethod(s)
C.定义abstractclass的目的是为了被继承
D.interface中定义的方法全是abstractmethods
E.interface中定义的变量全部是finalstatic变量
22.一个匿名的置类有可能___abd_____。
A.继承其他的类B.实现了某一接口
C.定义了构造方法D.可以使用成员变量
23.____a____又叫做uncheckedexception。
CheckedException通常继承____b____。
在方法签名上指定可能有异常产生用关键字___e_____,在程序中产生异常用关键字___d_____。
获得异常的简单描述信息调用方法____c____,获得详细的异常栈信息调用方法____f____。
A.RuntimeExceptionB.ExceptionC.getMessage
D.throwE.throwsF.printStackTrace
24.在图形编程中,将不同的控件按区域排列用___d_____布局管理器;让控件自动排列并保持大小用___c_____布局管理器;让控件按相同大小排列用___b_____布局管理器;一次只有一个控件可见的布局管理器是__a______。
A.CardLayoutB.GridLayout
C.FlowLayoutD.BorderLayout
25.图形编程通常按________cabd__________顺序。
A.设置布局管理器(Layoutmanager)B.向容器中增加控件
C.选择容器D.为控件设置事件处理器
26.完成如下代码,按照FlowLayout的布局方式向JFrame中添加一JButton:
JFrameframe=newJFrame(“SimpleGUI”);
FlowLayoutfl=newFlowLayout();
frame.setLayout(f1);
JButtonbtn=newJButton(“OK”);
frame.add(btn);
27.事件处理方式采用了observer(观察者)设计模式,事件编程模式三要素是___a_____、____b____和___c_____。
其中,____b____通常继承java.util.EventObject,__c______通常继承java.util.EventListener。
A.EventsourceB.Eventobject
C.EventlistenerD.HelperE.Model
28.JButton是____b____事件的事件源,它通过方法____a____注册事件侦听器,事件侦听器必须实现接口____c____,当事件发生时侦听器的方法____e____被调用,在此方法中调用___b_____的方法___d_____可以获得事件源。
A.addActionListenerB.ActionEvent
C.ActionListenerD.getSourceE.actionPerformed
29.JFrame的却省布局管理器是__b____,JDialog的却省布局管理器是___b___,JPanel的却省布局管理器是___a_____。
A.FlowLayoutB.BorderLayout
C.GridLayoutD.GridBagLayout
30.在swing编程中,用作提示信息的控件是____f____,作单行文本编辑的控件是___d_____,用作多行文本编辑的控件是____a____,可编辑HTML等类型文档的控件是___e_____,在界面上显示多条记录并可多重选择的控件是__b______,从下拉框中选择记录的空间是___c_____。
A.JTextAreaB.JListC.JComboBox
D.JTextFieldE.JEditorPaneF.JLabel
31.创建线程(Thread)的方式有两种,一种是继承类____b____,另一种是实现接口__c______。
启动线程的方法是___d_____。
线程启动后运行的是___a_____里的代码。
A.runB.ThreadC.RunnableD.start
32.完成以下代码创建并启动线程:
publicclassTestThreadimplementsRunnable{
publicvoidrun(){
for(inti=0;i<10000;i++)
System.out.println(i);
}
publicstaticvoidmain(String[]args){
TestThreadtt=newTestThread();
Threadt=________;
t.________;
}
}
33.判断一个线程是否被中断,调用方法__c______;中断一个线程,调用方法____a____;等待一个线程退出,调用方法___b_____;一个线程放弃执行权利调用方法__d______。
A.interruptB.joinC.isInterruptedD.yield
34.并发控制是多线程编程的难点。
一个线程要等待某个条件的满足调用方法___b_____;通知某一个处于等待状态线程的方法是___a_____,通知多个的是___d_____;处于等待状态的线程当前调用的方法或程序块用关键字___c_____来限制。
A.notifyB.waitC.synchronizedD.notifyAll
35.对原始数据的读写,采用流____a____和_____h___,为了提高性能,采用流___f_____和____i____;对各种基本数据类型和String类型的读写,采用流____b____和___d_____;读写文本类型采用__c______和____j____,方便读写文本行采用流___e_____和___k_____;对象读写采用流____l____和___m______。
A.InputStreamB.DataInputStreamC.ReaderD.InputStreamReader
E.BufferedReaderF.BufferedInputStreamG.DataOutputStreamH.OutputStreamI.BufferedOutputStreamJ.WriterK.PrintWriterL.ObjectInputStreamM.ObjectOutputStreamN.OutputStreamWriter
36.一个File对象是文件或目录在存中的表示,File类型中定义了方法__d____来判断一个文件是否存在,定义方法____a____创建一个新文件,定义方法__c______删除一个文件,定义方法____b____改变文件名,定义方法___f_____创建一级目录,定义方法___e_____同时创建一个目录层次。
对原始数据类型文件的操作用文件I/O流____h____和___k_____;对文本文件操作用文件I/O流____g____和___j_____;同时对一个文件进行读写操作用文件流___i_____。
A.createNewFileB.renameToC.deleteD.exists
E.mkdirsF.mkdirG.FileReader
H.FileInputStreamI.RandomAccessFileJ.FileWriter
K.FileOutputStream
37.创建一个TCP服务程序,该程序运行在port为6868,完成以下代码,实现一个多线程的服务程序:
_ServerSocketss=newServerSocket(6868);
while(true){
SocketclientRequest=ss.accept();
service(clientRequest);
}
38.创建一个tcp客户程序的顺序是___dacbe_____。
A.获得I/O流
B.关闭I/O流
C.对I/O流进行读写操作
D.建立socket
E.关闭socket
39.创建一个tcp服务程序的顺序是____bcadegf____。
A.创建一个服务线程处理新的连接
B.创建一个服务器socket
C.从服务器socket接受客户连接请求
D.在服务线程中,从socket中获得I/O流
E.对I/O流进行读写操作,完成与客户的交互
F.关闭socket
G.关闭I/O流
40.可以通过使用URL和URLConnection类型来完成基于HTTP/FTP的远程通讯,完成以下代码读取T的首页容:
URLtarenaFirstPage=__________newURL("210.29.0.5")________;
InputStreamis=______tarenaFirstPage.openString()________;
BufferedReaderbr=__newbufferedReader(is)______;
Stringline=null;
while((line=br.readLine())!
=null)System.out.println(line);
41.JavaUDP编程主要用到的两个类型是_____b___和___d_____。
发送和接收信息的方法是___f_____。
A.UDPSocketB.DatagramSocket
C.UDPPacketD.DatagramPacket
E.read/writeF.send/receive
42.指出下列哪个方法与方法publicvoidadd(inta){}为合理的重载方法。
bcd
Apublicintadd(inta)
Bpublicvoidadd(longa)
Cpublicvoidadd(inta,intb)
Dpublicvoidadd(floata)
43.如果下列的方法能够正常运行,在控制台上将显示什么?
ACD
publicvoidexample(){
try{
unsafe();
System.out.println("Test1");
}
catch(SafeExceptione)
{System.out.println("Test2");}
finally{System.out.println("Test3");}
System.out.println("Test4");
}
ATest1
BTest2
CTest3
DTest4
44.如果下列的方法不能正常运行,在控制台上将显示什么?
BCD
publicvoidexample(){
try{
unsafe();
System.out.println("Test1");
}
catch(SafeExceptione)
{System.out.println("Test2");}
finally{System.out.println("Test3");}
System.out.println("Test4");
}
ATest1
BTest2
CTest3
DTest4
45.写出下面程序的运行结果:
Hello!
IloveJAVA.
importjava.io.*;
publicclassabc{
publicstaticvoidmain(Stringargs[])
{
ABs=newAB("Hello!
","IloveJAVA.");
System.out.println(s.toString());
}
}
classAB{
Strings1;
Strings2;
publicAB(Stringstr1,Stringstr2)
{
s1=str1;
s2=str2;
}
publicStringtoString()
{
returns1+s2;
}
}
二单选题
1.下列哪个是JDK提供的编译器(B)
A.java.exeB.jav