Java期末考试复习题库.docx
《Java期末考试复习题库.docx》由会员分享,可在线阅读,更多相关《Java期末考试复习题库.docx(22页珍藏版)》请在冰点文库上搜索。
![Java期末考试复习题库.docx](https://file1.bingdoc.com/fileroot1/2023-6/15/f9a1bfd1-02b1-47db-883c-87852b916ad1/f9a1bfd1-02b1-47db-883c-87852b916ad11.gif)
Java期末考试复习题库
1Java中对数据库查询结果集进行操作的对象是()(D
A:
Connection对象
B:
Statement对象
C:
DriverManager对象
D:
ResultSet对象
2按运算符操作数的数目划分,运算符?
:
的类型是()A
A:
三目
B:
双目
C:
四目
D:
单目
3有关在Java中定义实例方法和类方法的叙述正确的是()(D
A:
前者有public修饰,后者没有public修饰
B:
前者没有public修饰,后者有public修饰
C:
前者有static修饰,后者没有static修饰
D:
前者没有static修饰,后者有static修饰
4Java代码g.drawLine(100,100,100,100)的功能是()B
A:
画一个圆
B:
画一条线段
C:
画一个点
D:
代码是错误的
5有Java语句如下,则说法正确的是()C
int[]a,b=newint[3];(1分)
A:
此语句是错误的
B:
a.length的值为3
C:
b.length的值为3
D:
a.length和b.length的值都为3
6以下程序代码的输出结果是()B
System.out.println(100/8);(1分)
A:
12.5
B:
12
C:
4
D:
0
7在Java语言中,一般不作为容器使用的是()
A:
JDialog
B:
JFrame
C:
JTextArea
D:
JPanel
8在Java语言中,把按钮button的标题文字设置为“第一个按钮”的方法是()A
A:
button.SetText("第一个按钮")
B:
button.GetText("第一个按钮")
C:
button.SetLabel("第一个按钮")
D:
button.GetLabel("第一个按钮")
9、在Java程序中声明一个数组,错误的是()C
A:
inta[];
B:
inta[][];
C:
floata[10];
D:
float[]a[];
10、在Java程序中有定义:
intx[][]=newint[4][5];则x.length和x[3].length的值分别是()A
A:
4和5
B:
5和4
C:
4和3
D:
5和3
11定义一个使用接口Java.lang.Runnable的类,必须要实现的方法是()(1分B
A:
start()
B:
run()
C:
init()
D:
paint()
12、如果发生多个线程形成一个等待环,这样,所有线程都陷入相互等待的状态。
这种循环等待现象称为()(1分)?
A:
互斥
B:
同步
C:
死锁
D:
临界
13、
下列关于线程的说法正确的是()(
A:
一个线程被创建,它就立即开始运行
B:
使用start()方法可以使一个线程立即开始运行
C:
当一个线程因为抢先机制而停止运行时,它被放在可运行队列的前面
D:
一个正在运行的线程可能因为某些情况而进入阻塞状态
14在Java程序中有代码如下:
System.out.println(
(newStringTokenizer("Iamastudent","a")).countTokens());
则输出结果为()(1分)c
A:
Iamastudent
B:
2
C:
3
D:
4
15、定义一个使用接口Java.lang.Runnable的类,必须要实现的方法是()
A:
start()
B:
run()
C:
init()
D:
paint()
16、下列关于继承的哪项叙述是正确的?
()
A、在java中允许多重继承
B、在java中一个类只能实现一个接口
C、在java中一个类不能同时继承一个类和实现一个接口
D、java的单一继承使代码更可靠
17、下列关于线程优先级的说法中,正确的是()。
A、线程的优先级是不能改变的
B、线程的优先级是在创建线程时设置的
C、在创建线程后的任何时候都可以设置
D、B和C
18、对于构造函数,下列叙述正确的是()。
A、构造函数不允许重载
B、构造函数没有返回类型
C、子类不允许调用父类的构造函数
D、在同一个类中定义的重载构造函数不可以相互调用
19、JAVA中为字符型输入/输出流提供的读字符的方法所使用的类是()。
C
A、InputStreamB、OutputStreamC、FIleReaderD、FileWriter
20、以下程序代码的输出结果是()D
intx=100;
System.out.println("5.5"+x%8);(1分)
A:
5.512
B:
5.512.5
C:
18
D:
5.54
21、下列哪些字符串匹配模式”。
boy\\w[3]”()。
A、boy111B、boy!
@#C、boyweoD、boyboyboyboy
22下列哪个关键可用来定义Java常量()。
A、publicB、staticC、finalD、void
23、在Java程序中有代码如下:
System.out.println(
(newStringTokenizer("Iamastudent","a")).countTokens());
则输出结果为()(1分)C
A:
Iamastudent
B:
2
C:
3
D:
4
24、为8位字节流数据提供读操作支持的类是()(1分)
A:
FileInputStream
B:
FileOutputStrem
C:
FileReader
D:
FileWriter
25、下列有关抽象类及抽象方法的叙述错误的是()(1分)
A:
使用final修饰的类是抽象类
B:
使用abstract修饰的方法是抽象方法
C:
抽象类必须被继承才能使用,抽象类不可能有实例
D:
抽象类可以没有抽象方法,但有抽象方法的类一定是抽象类
26、Java中对数据库查询结果集进行操作的对象是()。
A、ConnectionB、StatementC、DriverManagerD、ResultSet
27、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。
这种面向对象程序特性称为()。
A、隐藏B、覆盖C、重载D、Java不支持此特性
28、若在某一个类定义中定义有如下的方法:
abstractvoidperformdial();该方法属于()。
A、本地方法B、抽象方法C、解态方法D、最终方法
29、J2SE是()
A、Java企业平台B、Java标准平台C、Java小型平台D、Java小型平台第二版
31、下列哪种操作不会跑出异常()A
A :
浮点数除以0得到InfinityB :
i=0/0 ;C :
打开不存在的文件D :
a[-1]=100 ;
32、于length()表述正确的是()C
A :
数组有length()方法,String也有length()方法
A :
数组有length()方法,String没有length()方法
A :
数组没有length()方法,String有length()方法
A :
数组没有length()方法,String也没有length()方法
33、在Java程序中有定义:
intx[][]=newint[4][5];则x.length和x[3].length的值分别是()。
A、4和5B、5和4C、4和3D、5和3
34、下列程序的输出结果是()。
StringBufferbuf1=newStringBuffer(20);
buf1.append("student");
System.out.println(buf1.length()+","+buf1.capacity());
A、20,20B、7,20C、0,20D、0,0
35、当使用FileInputStream类中的read()方法时,如果没有读入一个字节数据时,返回值为()
A:
0
B:
-1
C:
true
D:
false
36、下列程序的输入结果是()。
StringBufferbuf1=newStringBuffer(20);
buf1.append("student");
System.out.println(buf1.length()+","+buf1.capacity());
A.20,20B.7,20C.0,20D.0,0
39、一个实现Runnabel接口的类必须要实现的方法是()(
A:
start()
B:
run()
C:
sleep()
D:
init()
40、下列有关Java的叙述错误的是()(1分)D
A:
强类型语言
B:
与平台无关
C:
可以使用汉字变量名
D:
不检查数组下标越界
41
下列有关数组的叙述错误的是()(1分)D
A:
数组是将一组相同类型的数据顺序存储,组成一种复合数据类型
B:
在Java语言中,数组是一种引用类型,数组名如同对象名一样,是一种引用
C:
对于多维数组,从最高维开始,可以对每一维分配不等长的空间
D:
在Java语言中,数组元素可以互相赋值,而数组名不能直接赋值
42.
当线程A使用某个对象,而此对象又需要线程B修改后才能符合A线程的需要,这时线程A就要等待线程B完成修改工作,这种现象称为()(1分)
A:
线程的同步
B:
线程的互斥
C:
线程的调度
43、StringBuffer类的字符对象的长度是()B
A :
固定长度B :
可变长度C :
长度必须小于16个字符D :
长度必须大于16个字符
44、对于catch子句的排列,下列正确的是()
A :
父类在前,子类在后B :
父类在后,子类在前C :
有继承关系的异常类不能在同一个try内D :
必须有Exception类的Catch捕捉
45、有如下程序段:
inttotal=0;
for(inti=0;i<4;i++){
if(i==1)continue;
if(i==2)break;
total+=i;
}
则执行完该程序段后total的值为:
()。
A、0B、1C、3D、6
46、有整型数组:
int[]x={12,35,8,7,2};,则调用方法Arrays.sort(x)后,数组x中的元素值依次是()。
A、2781235B、1223587C、3512872D、8712352
二、阅读下列程序,写出程序运行结果。
1、classA
{
intx,y;
A(intxx,intyy){x=xx;y=yy;}
}
interfaceA3202{intf3202(Aa);}
interfaceB3202{intg3202();}
publicclassC3202extendsAimplementsA3202,B3202
{
Aa=newA(x,y);
C3202(intx,inty)
{
super(x,y);
this.x=x*x;
this.y=y*y;
}
publicintf3202(Aa){returnx*a.x+x*a.y;}
publicintg3202(){returnx*a.x+x*a.y;}
publicstaticvoidmain(String[]args)
{
intx=10,y=20;
Aa=newC3202(x,y);
C3202c=newC3202(x,y);
System.out.println(a.x+","+a.y);
System.out.println(c.f3202(a));
System.out.println(c.g3202());
}
}
2、classA
{
Bobj;
A()
{
obj=newB();
obj.print();
System.out.println("AAA");
}
classB
{
publicvoidprint()
{System.out.println("BBB");}
}
}
publicclassClass3202
{
publicstaticvoidmain(Stringarg[])
{Aobj=newA();}
考答案:
程序运行结果:
BBB
AAA
3、写出下面程序的运行结果。
publicclassClass34ThreadTest
{
publicstaticvoidmain(Stringargs[])
{
Helloh=newHello();
Threadt=newThread(h);
t.start();
}
}
classHelloimplementsRunnable
{
inti;
publicvoidrun()
{
while(true)
{
System.out.println("Hello"+i++);
if(i==5)break;
}
}
})
4、publicclassAAAAa
{
publicstaticvoidmain(Stringarg[])
{
Stringstr=".con/index.php";
Stringregex="[./]";
Strings[]=str.split(regex);
for(inti=0;iSystem.out.println(s[i]);
}
}
a和b是两个LinkedList对象。
各add一些元素。
Lista和b=newLinkedList();a.add("A");a.add("A");a.add("A");a.add("A");a.add("A");a.add("A");
b.add("b");b.add("b");b.add("b");b.add("b");b.add("b");b.add("b");
ListIteratoraIter=a.listIterator();
IteratorbIter=b.iterator();
while(bIter.hasNext()){
if(aIter.hasNext())aIter.next();
aIter.add(bIter.next());}
System.out.println(a);
}
6、importjava.io.*;
publicclassCCCCC
{
publicstaticvoidmain(Stringargs[])
{
Filefile=newFile("hello.txt");
charb[]="北京欢迎你".toCharArray();
try{
FileWriterout=newFileWriter(file);//writing
out.write(b);
out.write("你好中国");
out.close();
FileReaderin=newFileReader(file);//reading
intn=0;
while((n=in.read(b,0,2))!
=-1)
{
Stringstr=newString(b,0,2);
System.out.println(str);
}
in.close();
}
catch(IOExceptione)
{
System.out.println(e);
}
System.out.println("b[]="+(newString(b)));
}
}
7、写出下面程序的运行结果
staticintx;
staticintAdd(inty){
x=x+y;
returnx;
}
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Add
(1);System.out.printf("\n%d",Add(20));
Add(3);System.out.printf("\n%d",Add(40);
}
8、classancestorClass
{privateinta=8;
protectedintb=15;
voidf()
{System.out.print(a*b);}
voidg(){System.out.print("ancestorClassFunctionghasbeencalled!
");
}
}
publicclassTestextendsancestorClass
{intc=5;
publicvoidf()
{System.out.println(b/c);}
publicvoidtestfun()
{System.out.println("sonfunctiontestfunhasbeencalled!
");}
publicstaticvoidmain(Stringargs[])
{ancestorClasssc=newancestorClass();
sc.f();
sc.g();
sc=newTest();
((Test)sc).testfun();
}
}
9、classTest
{floatF;
publicdoublegetF(floatF)
{F++;
returnthis.F;
}
publicstaticvoidmain(Stringargs[])
{System.out.println(newTest().getF(10));}
}
10、文件读写
ByteArrayOutputStreamout=newByteArrayOutputStream();
for(inti=1;i<=13;i=i+5){out.write(i);}
ByteArrayInputStreamin=newByteArrayInputStream(out.toByteArray());
intn=-1;
while((n=in.read())!
=-1){
System.out.printf("\nc",(char)n);
11、classputOutDataextendsThread
{publicvoidrun(){for(inti=2;i<=10;i++)System.out.print(i+"");}
}
classTest
{publicstaticvoidmain(Stringargs[])throwsInterruptedException
{Threadth=newputOutData();
th.start();
System.out.print("程序结束啦!
");
12、字符串创建时的区别
Stringss="ILikeahut";
Stringssss=newString(ss);
Stringsss="ILikeahut";
System.out.printf("%b",ss==ssss);
System.out.printf("%b",ss.equals(sss));
System.out.printf("%b",ssss.equals(sss));
==是比较什么的?
Equals是比较什么的?
直接复制和newString()的区别
四、简答
1、什么是上转型对象?
2、什么叫接口回调?
3、什么是正则表达式?
写出与模式“A[13568]{3}”匹配的几个字符串。
4、程序、线程和进程的关系?
5、、线程有4种状态?
6、FileInputStream流的read()方法和FileReader流的read()方法有何不同?
它们的文件输出流分别对应哪个类?
7、java的方法重写继承的方法的规则是什么?
覆盖或重写是什么?
8、String和StringBuffer的区别?
9、子类继承方法时,可以降低方法的访问权限吗?
10、重载是什么?
11、抽象类的特点
12、接口的特点
五、程序设计题
1、编写一个方法string3703,要求在一个字符串数组中找出长度最长的一个元素。
其中字符串数组是方法的参数,最长的一个元素是方法的返回值。
(6分)
参考答案:
方法如下:
Stringstring3703(String[]a)
{
StringmaxStr=a[0];
for(inti=1;iif(maxStr.length()maxStr=a[i];
returnmaxStr;
}
[解析]完整的程序如下:
publicclassClass3703
{
staticStringstring3703(String[]a)
{
StringmaxStr=a[0];
for(inti=1;iif(maxStr.length()>a[i].length())
maxStr=a[i];
returnmaxStr;
}
publicstaticvoidmain(String[]args)
{
Stringb[]={"asdf","saffdfd","as"};
System.out.println(string3703(b));
}
}
输出结果为:
as
2、应用程序,