java期末考试复习资料.docx
《java期末考试复习资料.docx》由会员分享,可在线阅读,更多相关《java期末考试复习资料.docx(21页珍藏版)》请在冰豆网上搜索。
java期末考试复习资料
复习:
一,选择题
(1)Java中,负责对字节代码解释执行的是(C)
A:
垃圾回收器
B:
虚拟机
C:
编译器
D:
多线程机制
(2)下列叙述中,正确的是(A)
A:
Java语言的标识符是区分大小写的
B:
源文件名与public类名可以不相同
C:
源文件名其扩展名为.jar
D:
源文件中public类的数目不限
(3)下列语句中,错误的Java语句是(C)
A:
连续出现多个分号
B:
try......catch语句
C:
include语句
D:
switch语句
(4)在Java程序中,已将FileWriter对象接到BufferedWriter对象上,要实现缓冲式输出,可对BufferedWriter对象使用的方法是(B)
A:
read()
B:
write()
C:
readLine()
D:
writeLong()
(5)接口的所有变量和方法分别默认为是(A)
A:
finalstatic和publicabstract
B:
finalstatic和publicfinal
C:
publicstatic和publicabstract
D:
publicstatic和publicfinal
(6)当线程A使用某个对象,而此对象又需要线程B修改后才能符合A线程的需要,这时线程A就要等待线程B完成修改工作,这种现象称为(A)
A:
线程的同步
B:
线程的互斥
C:
线程的调度
D:
线程的就绪
(7)在Java程序中,已将FileWriter对象接到BufferedWriter对象上,要实现缓冲式输出,可对BufferedWriter对象使用的方法是(B)
A:
read()
B:
write()
C:
readLine()
D:
writeLong()
(8)下列有关数组的叙述错误的是(D)
A:
数组是将一组相同类型的数据顺序存储,组成一种复合数据类型
B:
在Java语言中,数组是一种引用类型,数组名如同对象名一样,是一种引用
C:
对于多维数组,从最高维开始,可以对每一维分配不等长的空间
D:
在Java语言中,数组元素可以互相赋值,而数组名不能直接赋值
(9)下列有关Java的叙述错误的是(D)
A:
强类型语言
B:
与平台无关
C:
可以使用汉字变量名
D:
不检查数组下标越界
(10)一个实现Runnable接口的类必须要实现的方法是(B)
A:
start()
B:
run()
C:
sleep()
D:
init()
(11)在Java中,表示换行符的转义字符是(A)
A:
‘\n’
B:
B
C:
C
D:
D
(12)能够支持javadoc命令的文档注释形式是(D)
A:
/**...//
B:
/*...*/
C:
//
D:
/**...*/
(13)当使用FileInputStream类中的read()方法时,如果没有读入一个字节数据时,返回值为(B)
A:
0
B:
-1
C:
true
D:
false
(14)下列正确的句子是(D)
A:
float3.14;
B:
bytei=225;
C:
intk=33L;
D:
intp[][];
(15)按运算符操作数的数目划分,运算符?
:
的类型是(A)
A:
三目
B:
双目
C:
四目
D:
单目
(16)有关在Java中定义实例方法和类方法的叙述正确的是(D)
A:
前者有public修饰,后者没有public修饰
B:
前者没有public修饰,后者有public修饰
C:
前者有static修饰,后者没有static修饰
D:
前者没有static修饰,后者有static修饰
(17)有Java语句如下,则说法正确的是(C)
int[]a,b=newint[3];
A:
此语句是错误的
B:
a.length的值为3
C:
b.length的值为3
D:
a.length和b.length的值都为3
(18)如果发生多个线程形成一个等待环,这样,所有线程都陷入相互等待的状态。
这种循环等待现象称为(C)
A:
互斥
B:
同步
C:
死锁
D:
临界
(19)下面有关临界段叙述错误的是(D)
A:
多线程互斥使用共享资源的程序段被称为临界段
B:
临界段是一种加锁机制,与多线程共享资源有关
C:
临界段的作用是在任何时该一个共享资源只能供一个线程使用
D:
如果一个线程已进入某个共享资源的临界段,且还没有使用结束,其他进程可抢占这个共享的资源
(20)以下程序代码的输出结果是(D)
intx=100;
System.out.println("5.5"+x%8);
A:
5.512
B:
5.512.5
C:
18
D:
5.54
(21)为8位字节流数据提供读操作支持的类是(A)
A:
FileInputStream
B:
FileOutputStream
C:
FileReader
D:
FileWriter
(22)下列有关抽象类及抽象方法的叙述错误的是(A)
A:
使用final修饰的类是抽象类
B:
使用abstract修饰的方法是抽象方法
C:
抽象类必须被继承才能使用,抽象类不可能有实例
D:
抽象类可以没有抽象方法,但有抽象方法的类一定是抽象类
(23)在Java语言中执行如下语句后,i和j的值分别为(A)
inti=10;intj=++i;
A:
11和11
B:
10和10
C:
10和11
D:
11和10
(24)在Java程序中定义一个类,类中有一个没有访问权限修饰的方法,则此方法(D)
A:
访问权限默认为是public
B:
访问权限默认为是private
C:
访问权限默认为是protected
D:
以上都不是
(25)在Java中,能实现多重继承效果的方式是(C)
A:
内部类
B:
适配器
C:
接口
D:
同步
(26)以下程序代码的输出结果是(C)
shorti=10,j,k=20;
j=k+i++;
System.out.print(j);
A:
30
B:
31
C:
出错
D:
11
对于使用类型为byte或者short变量的算术表达式,其计算方式与使用int型变量相同都是进行32位算术运算,结果也是32位整数。
本题编译器无法把32位整数存储到只有16位长的变量中。
(27)在Java程序中定义一个类,类中有一个没有访问权限修饰的方法,则此方法(D)
A:
类外的任何方法都能访问它
B:
类外的任何方法都不能访问它
C:
类的子类和同包类能访问它
D:
只有类和同包类才能访问它
(28)在Java中,线程的调度策略采用(B)
A:
分时式
B:
抢占式
C:
非分时式
D:
非抢占式
(29)下列代码中,错误的Java整型常量是(B)
A:
007
B:
008
C:
0x3AA
D:
0x3AB
(30)采用缓冲式输出时,如果又想立即写入到文件,则需要调用的方法是(B)
A:
flash()
B:
flush()
C:
write()
D:
read()
(31)Java中实现输入/输出操作的类库在(A)
A:
java.io包中
B:
java.input包中
C:
java.output包中
D:
java.lang.io包中
(32)以下程序代码的输出结果是(B)
System.out.println(100/8);
A:
12.5
B:
12
C:
4
D:
0
(33)在Java程序中声明一个数组,错误的是(C)
A:
inta[];
B:
inta[][];
C:
floata[10];
D:
float[]a[];
(34)在Java程序中有定义:
intx[][]=newint[4][5];则x.length和x[3].length的值分别是(A)
A:
4和5
B:
5和4
C:
4和3
D:
5和3
(35)下列关于线程的说法正确的是(D)
A:
一个线程被创建,它就立即开始运行
B:
使用start()方法可以使一个线程立即开始运行
C:
当一个线程因为抢先机制而停止运行时,它被放在可运行队列的前面
D:
一个正在运行的线程可能因为某些情况而进入阻塞状态
(36)一个Java程序运行从上到下的环境次序是(C)
A.操作系统、Java程序、JRE/JVM、硬件
B.JRE/JVM、Java程序、硬件、操作系统
C.Java程序、JRE/JVM、操作系统、硬件
D.Java程序、操作系统、JRE/JVM、硬件
(37)下面哪些是合法的标识符。
(A)
A、personsB、12345C、*pointD、this
(38)下说法正确的是:
(B)
A.一个可直接运行的Java源文件中可以有多个public类,其中必须有一个和文件同名
B.一个可直接运行的Java源文件中可以没有public类
C一个可直接运行的Java源文件中只能有一个且和文件同名的public类。
D.一个可直接运行的Java源文件中可以有多个public类,且可以没有和文件同名的类。
(39)在java中定义常量的正确语法为:
(C)
A.intvalue=20;B.constintVALUE=20;
C.finalintVALUE=20;D.intVALUE=20;
(40)编译一个定义了3个类和10个方法的Java源文件后,会产生多少个字节码文件,扩展名是什么(D)
A、13个字节码文件,扩展名是.classB、1个字节码文件,扩展名是.class
C、3个字节码文件,扩展名是.javaD、3个字节码文件,扩展名是.class
(41)于Java语言的内存回收机制,下列选项中最正确的一项是(C)。
A、Java程序要求用户必须手工创建一个线程来释放内存
B、Java程序允许用户使用指针来释放内存
C、内存回收线程负责释放无用内存
D、内存回收线程不能释放内存对象
(42)有如下的程序代码,在执行完后x和y的值是多少(D)
intx=8,y=2,z;
x=++x*y;
z=x/y++;
A)x=16,y=2B)x=16,y=4C)x=18,y=2D)x=18,y=3
(43)正确定义一个初始值为20的float类型的变量的语句是:
(C)
Afloat#value=20f;Bfloatvalue#=20;
Cfloat_value=20f;Dfloatvalue=20;
(44)下语句不能通过编译的是(D)。
A.int[]a={1,2,3,4};
B.intb[];
C.intc[]=newint[3];
D.intd=newint[];
(45)、已知类关系如下:
classEmployee;
classManagerextendsEmployee;
classDirectorextendsEmployee;
则以下关于数据的语句正确的是:
(A)。
A.Employeee=newManager();
B.Directord=newManager();
C.Directord=newEmployee();
D.Managerm=newDirector();
(46)(A)下面对类的申明哪个是正确的?
A)publicclassFred{
publicintx=0;
publicFred(intx){
this.x=x;
}
}
B)publicclassfred
publicintx=0;
publicfred(intx){
this.x=x;
}
}
C)publicclassFredextendsMyBaseClass,MyOtherBaseClass{
publicintx=0;
publicFred(intxval){
x=xval;
}
}
D)protectedclassFred{
privateintx=0;
privateFred(intxval){
x=xval;
(47)对于类的说法中,不正确的一项是(D)。
A、一般类体的域包括常最、变量、数组等独立的实体
B、类中的每个方法都由方法头和方法体构成
C、Java程序中可以有多个类,但是公共类只有一个
D、java程序可以有多个公共类
(48)下列关于类和对象的描述中,不正确的一项是(D)。
A、现实世界中,可以把每件事物都看做是一个对象
B、一组对象构成一个程序,对象之间通过发消息通知彼此该做什么
C、有共同属性的对象可以抽象为一个类
D、一个类只能实例化一个对象
(49)、定义主类的类头时可以使用的访问控制符是(A)。
A、publicB、protectedC、privateD、privateprotected
(50)、下列描述中,不正确的是(A)。
A、Java不支持多线程
B、一个Java源程序中不允许有多个公共类
C、Java程序可以划分为两大类:
Application和Applet
D、Java通过接口支持多重继承
(51)、现有一个双精度浮点变量声明为doubledValue;下列赋值语句不正确的一个是(D)。
A、dValue=Float.POSITIVE_INFINITY;B、dValue=Float.NaN;
C、dValue=Double.POSITIVE_INFINITY;D、dValue=(double)true;
23、现有2个byte类型的变量bb=126、bb2=5,当执行bb=(byte)(bb+bb2);语句之后,bb的值应该是()。
A、-128B、131C、-125D、语句在编泽中出错
(52)、现在有一个int类型的变量a和一个char类型的变量b,关于它们之间类型转换的说法中,正确的一个是(A)。
A、a必须性制转换为bB、a可以自动转换为bC、b必须强制转换为aD、它们不可以相互转换
(53)、下列关于short类型数据的说法中正确的一个是(D)。
A、short类型数据的长度为8位
B、short类型只能动转换为byte类
C、short类型被包装在类java.1ang.Character中
D、short类型存储数据的顺序是先高后低
(54).在下述字符串中,不属于Java语言关键字的是(C)
A.floatB.new
C.javaD.return
(55).Java语言中数值数据的类型能自动转换,按照从左到右的转换次序为(B)
A.byte→int→short→long→float→double
B.byte→short→int→long→float→double
C.byte→short→int→float→long→double
D.short→byte→int→long→float→double
(56).在以下供选择的概念中,不属于面向对象语言概念的是(B)
A.消息B.模块
C.继承D.多态性
(57).在下述Java语言语句中,错误的创建数组的方法是(D)
A.intintArray[];intArray=newint[5];
B.intintArray[]=newint[5];
C.int[]intArray={1,2,3,4,5};
D.intintArray[5]={1,2,3,4.5};
(58).在以下四个供选的整数中,能作为线程最高优先级的整数是(C)
A.0B.1
C.10D.11
二、填空题
1:
参考答案:
break
试题内容:
在switch语句中,通过_____语句退出switch语句,使程序从整个switch语句后面的第一条语句处开始执行。
2:
参考答案:
数组的数组
试题内容:
在Java中所有实现的多维数组,实际上是由一维数组构成的_____。
3:
参考答案:
wait()
试题内容:
为实现线程同步,Java语言提供了notify()、notifyAll()和_____三个方法供线程在临界段中使用。
4:
参考答案:
65536
试题内容:
Java语言使用Unicode字符集,共有_____个字符。
5:
参考答案:
(P16)(y%4==0&&y%100!
=0)||y%400==0
试题内容:
闰年的条件是:
每4年一个闰年,但每100年少一个闰年,每400年又增加一个闰年。
如果年份用整数类型变量y表示,则y年是闰年的条件用逻辑表达式可描述为_____。
6:
参考答案:
Boolean
试题内容:
Java语言中,逻辑类型用关键字_____标识,也称布尔类型。
7:
参考答案:
sleep()
试题内容:
Java程序能实现多线程并行执行,为了让一个线程暂停执行,其他线程有机会被执行,可对要暂停的线程执行_____方法。
8:
参考答案:
class
[解析]Java程序的扩展名为“.class”,源程序的扩展名为“.java”。
试题内容:
Java应用程序和小应用程序都由一个或多个扩展名为_____的文件组成。
9:
参考答案:
FileReader
试题内容:
Java程序要采用缓冲式输入,需要先创建_____对象,再利用这个对象创建BufferedReader对象。
10:
参考答案:
true
试题内容:
以下代码的输出结果是_____。
System.out.println(5>4==3<4);
11:
参考答案:
45
[解析]x为整型对象,toString()方法是把一个对象转换为该对象的字符串表示,substring(inta,intb)方法是在一个字符串中从a下标开始截取到b-1下标所得子串。
试题内容:
在Java程序中有如下代码,则输出结果为_____。
Integerx=23456;
System.out.println(x.toString().substring(2,4));
12:
参考答案:
java.util
试题内容:
Date类在Java语言的_____包中。
13:
参考答案:
InterruptedException
试题内容:
由于sleep()方法可能产生_____异常,应将sleep()方法写在try块中,并用catch块处理异常。
14:
参考答案:
5
试题内容:
在java语言中定义:
charc[]={'0','1','3',''5,'2'},则c.length=_____。
15:
参考答案:
RandomAccessFile
试题内容:
流在某些应用中,不希望顺序读写流,而是需要采用随机访问方式,文件随机访问可利用_____
16:
参考答案:
close()
试题内容:
流使用结束后,关闭流并且释放与该流相关的资源,用_____方法。
17:
参考答案:
构造方法
试题内容:
_____是一种特殊的方法,这种方法的名字与它的类名相同,并且不返回结果,也不写上void关键字。
18:
参考答案:
继承
试题内容:
在已有类的基础上,扩充属性或扩充与改写某些方法,生成新的类,这个方式称为_____。
19:
参考答案:
synchronized
试题内容:
在Java语言,使用关键字定_____义临界段,能对共享对象的操作上锁。
20:
参考答案:
起始行或第一行
试题内容:
在Java程序中,如果有package语句,则此语句必须出现在源程序文件的_____。
21:
参考答案:
public
试题内容:
Java源文件中最多只能有一个_____类,其他类的个数不限。
22:
参考答案:
引用
试题内容:
Java语言将类型分为基本类型和_____类型两种。
23:
参考答案:
Unicode
试题内容:
Java语言使用_____字符集,共有65535个字符。
三、程序填空
(1)下列程序的功能是每隔一秒钟输出一个字符串“Hello!
”。
classC3101implementsRunnable
{
publicstaticvoidmain(Stringargs[])
{
C3101t=newC3101();
Threadtt=newThread(t);
tt.start();
}
publicvoidrun()
{
for(;;)
{
try{
Thread.sleep(1000);
}catch(InterruptedExceptione){}
System.out.println("Hello");
}
}
}
(2)下面程序运行后,连续输出20个相同的单词。
请完成程序。
publicclassC3102
{
publicstaticvoidmain(Stringargs[])
{
Threadt=newThread(newHello());
t.start();
}
}
classHelloimplementsRunnable
{
inti=0;
publicvoidrun()
{
while(i++<20)
{
System.out.print(i+":
Hello");
}
}
}
(3):
参考答案:
y+"年"+m+"月"+d+"日"
Date(2009,2,2)
试题内容:
程序运行结果为:
2008年10月1日
2009年2月2日
请填空:
publicclassDate
{
inty,m,d;
Date()
{
y=2008;m=10;d=1;
}
Date(intyy,intmm,intdd)
{
y=yy;m=mm;d=dd;
}
publicStringtoString()
{
return_____;
}
publicstaticvoidmain(String[]args)
{
Dated1=newDate();
Dated2=new_____;
System.out.println(d1.toString());
System.out.println(d2.toString());
}
}
2:
参考答案:
s.length()-i-1,s.length()-i
ifalse:
true
试题内容:
回文是指正读和反读都一样的字符串。
方法f27(Strings)的功