java复习题Word文件下载.docx
《java复习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《java复习题Word文件下载.docx(39页珍藏版)》请在冰点文库上搜索。
![java复习题Word文件下载.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/2d65cd64-f2fd-44c3-8efe-85faa84cbaf9/2d65cd64-f2fd-44c3-8efe-85faa84cbaf91.gif)
while(a-->
=0){
b++;
}
"
a="
+a+"
b="
+b);
}
下列选项中,哪一个是正确的运行结果()
=8,b=-2=-2,b=8=3,b=0=0,b=3
本题中有两个循环语句,分别是外层循环的for语句和内层循环的while语句,首先程序会执行for循环中的语句,并执行循环体中的表达式a=i%2,计算出a的值,然后在进入while循环计算b的值,循环往复直到外层循环条件i>
5为止
8阅读下面的程序
publicclassTest{
publicstaticvoidmain(String[]args){
for(intx=0;
x<
=3;
x++){
continue;
运行结果正确的是
A.跳出循环,无输出
A解析:
continue语句的作用是终止本次循环,因此contine后的代码永远不会被执行,都是无效代码
9____关键字用于包的声明答案:
package解析:
10【】关键字用于引入包答案:
import
11若x=2,则表达式(x++)/3的值是【】答案:
12若inta=2;
a+=3;
执行后,变量a的值为【】答案:
5
13方法重载的条件是:
方法名相同,【】不相同答案:
参数列表
方法的重载与返回值类型无关,它只有两个条件,一是方法名相同,二是参数列表(参数个数或参数类型)不相同
14定义一个方法时,要有访问修改符、返回值类型、方法名、【】
参数列表解析:
方法的定义比较严格,必须要有访问修饰符、返回值类型、方法名称、参数列表(参数类型、参数名称)
“隐藏对象的属性和实现细节,仅对外提供公有的方法”描述的是面向对象的哪个特征()
A.封装B.继承C.多态D.以上都不是
封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。
2下列选项中,不属于面向对象特征的是()。
A.继承性B.封装性C.跨平台性D.多态性
C解析:
面向对象有三种特性,分别是封装性、继承性和多态性。
跨平台性是Java语言的特点,而不是面向对象的特征。
3请阅读下面的代码
classA{
intx;
staticinty;
voidfac(Strings){
字符串:
”+s);
下列选项中描述正确的是()
y和s都是成员变量是实例变量,y是类变量,s是局部变量
和y是实例变量,s是参数,y和s都是实例变量
在方法中声明的s是局部变量,使用static关键字修饰的y是类变量,在类中定义的x是实例变量。
4请阅读下面的程序代码
ClassPerson{
voidsay(){
Example{
publicstaticvoidmain(String[]args){
Personp2=newPerson();
Personp1=newPerson();
();
();
p2=null;
下列关于程序运行结果的描述中,正确的是()
A.输出1个helloB.输出2个hello后会抛出异常
C.输出3个hello后会抛出异常D.不会输出hello,直接抛出异常
程序中创建了2个Person对象p1、p2,并分别调用了say()方法输出两个hello,然后将p2对象置为null,使p2对象失去了引用,因此再次使用p2对象调用say()方法时,会抛出异常。
5下列关键字中,用于创建类的实例对象的是()。
Java中使用new关键字创建对象,class用于定义一个类,private是权限修饰符,表示表示只能在本类中访问,void表示无返回值
6下面哪个关键字用于将类中的属性私有化()
答案:
7下面关于调用构造方法的描述中,正确的是()
A.构造方法在类定义的时候被调用B.构造方法在创建对象的时候被调用
C.构造方法在调用对象方法时被调用D.构造方法在使用对象的变量时被调用
调用构造方法创建对象构造方法的作用是为对象中的属性赋值,在创建对象时,构造方法就会被调用。
8下列关于构造方法定义的描述中,错误的是()。
A.方法名与类名相同B.在方法名的前面没有返回值类型的声明C.当定义了有参构造方法,系统默认的无参构造方法依然存在D.在方法中不能使用return语句返回一个值
9下列关于构造方法的描述,错误的是()。
A、一个类中只能定义一个构造方法B、一个类中可以定义多个构造方法C、如果在一个类中定义有参的构造方法,jvm就不会提供默认的无参构造方法D、构造方法的作用是用来给属性进行初始化的答案:
A
10Personp=newPerson(“张三”,23);
这条语句会调用下列哪个构造方法给属性进行初始化()
Person(){}Person(Stringname,intage){=name;
=age;
Person(intage,Stringname){=age;
=name;
Person(Stringname){=name;
}
创建对象时会找到匹配的构造方法给属性进行初始化,由于Personp=newPerson(“张三”,23);
这条语句中有两个参数,而且第1个参数是String类型的,第2个参数是int类型的,因此会调用B选项中的构造方法。
11在Java中,要想让一个类继承另一个类,可以使用以下哪个关键字
答案:
12在类的继承关系中,需要遵循以下哪个继承原则
A.多重B.单一C.双重D.不能继承答案:
13已知类的继承关系如下:
classEmployee;
classManagerextendsEmployeer;
classDirectorextendsEmployee;
则以下语句能通过编译的有哪些
e=newManager();
d=newManager();
d=newEmployee();
m=newDirector();
14编译运行下面的程序,结果是什么
publicclassA{
Bb=newB();
();
voidtest(){
A"
);
classBextendsA{
B"
A.产生编译错误B.代码可以编译运行,并输出结果AB
C.代码可以编译运行,但没有输出D.编译没有错误,但会产生运行时异常
15publicclassExample{
try{
intrst=4/0;
ret="
+rst);
}catch(Exceptione){
catch语句块执行"
return;
}finally{
finally语句块执行"
程序继续向下执行"
运行以上程序,输出的结果是()
语句块执行语句块执行程序继续向下执行
语句块执行finally语句块执行程序继续向下执行
在try语句块中发生了除零异常,因此会执行catch语句块中的内容,输出"
,finally语句块中表示一定会执行的语句,虽然catch中有return,但依然会输出"
16下面程序运行的结果是()
classDemo{
intx=div(1,2);
publicstaticintdiv(inta,intb){
returna/b;
A.输出1B.输出0C.输出D.编译失败答案:
17在try{}catch(______e){}横线处需要填写的是()
A.异常对象B.异常类C.任意对象D.任意类
catch代码块需要一个形参指明它所能够接收的异常类型,这个参数的类型必须是Exception类或其子类
18以下对于try…catch语句描述正确的是()
…catch语句处理程序中的错误...catch语句处理程序中的bug
...catch语句处理程序中的异常D.以上说法都不正确
try...catch语句处理程序中的异常
19下列选项中,关于final修饰成员变量的说法正确的是()
A.被final修饰的成员变量可以被多次赋值B.被final修饰的成员变量为常量
只能在接口中修饰成员变量D.以上都不对
被final修饰的变量为常量,不能被第二次赋值或改变引用
20下列选项中,不可以被final修饰的是()
A.接口B.类C.方法D.变量
final关键字可用于修饰类、变量和方法
题目难度:
★☆☆☆容易
21分析下面程序,哪一行代码能正确赋值()
classDemo{
publicvoidmethod(){
finalintnum1=10;
staticintnum2=20;
abstractintnum3=30;
privateintnum4=40;
intnum1=10;
intnum2=20;
intnum3=30;
intnum4=40;
final可以修饰局部变量
22下面程序的运行结果是()
publicclassDemo{
try{
/0);
除法正常运行"
}catch(ArithmeticExceptione){
除数不能为0"
A.编译失败B.编译通过,没有结果输出C.输出:
除法正常运行D.输出:
除数不能为0
D解析:
虽然是运行时期异常,但是也可以使用try…catch语句进行处理。
一旦进入处理语句就不会再回去执行
23下列选项中,用于解压jar文件的命令是()
–c–x–v-f
参数x用于解压
24下列选项中,可以导入指定包中所有类的是()
包名;
包名.*;
包名;
如果有时候需要用到一个包中的许多类,则可以使用“import包名.*;
”来导入该包下所有类
25下列关于protected的说法中,正确的是()
修饰的方法,只能给子类使用修饰的类,类中的所有方法只能给子类使用C.如果一个类的成员被protected修饰,那么这个成员既能被同一包下的其它类访问,也能被不同包下该类的子类访问D.以上都不对
如果一个类的成员被protected访问控制符修饰,那么这个成员既能被同一包下的其它类访问,也能被不同包下该类的子类访问
26如果类的成员被()访问控制符来修饰,则这个成员只能被该类的其它成员访问,其它类无法直接访问
如果类的成员被private访问控制符来修饰,则这个成员只能被该类的其它成员访问,其它类无法直接访问。
类的良好封装就是通过private关键字来实现的
27阅读下列的代码
_________________________
classOuter{
staticclassInner{
publicvoidmethod(){
method"
下列选项中,填写在空白处可以使程序正常运行的是()
o=newOuter();
I=newInner();
oi=new();
D.以上答案都不对答案:
28阅读下列的程序
publicclassTest3{
下列选项中,可以正确输出method()方法的是()
A、Outero=newOuter();
B、InnerI=newInner();
C、oi=new();
D、以上答案都不对
29下列关于使用this调用构造方法的说法中,错误的是()
A.使用this调用构造方法的格式为this([参数1,参数2…])
B.只能在构造方法中使用this调用其它的构造方法
C.使用this调用其它构造方法的语句必须放在第一行
D.在一个类的两个构造方法中可以使用this互相调用答案:
30下列关于this的说法中,错误的是()
A.只能在构造方法中使用this调用其它的构造方法,不能在成员方法中使用
B.在构造方法中,使用this调用构造方法的语句必须位于第一行,且只能出现一次
关键字可以用于区分成员变量与局部变量
可以出现在任何方法中答案:
31在Java语言中,所有的类都直接或间接继承自【】类答案:
Object
32一个类如果实现一个接口,那么它就需要实现接口中定义的全部【】,否则该类就必须定义成【】答案:
方法,抽象类
33异常的捕获通常由try、catch两部分组成,【】代码块用来存放可能发生异常,【】代码块用来处理产生的异常答案:
try,catch
34在Java语言中,允许使用已存在的类作为基础创建新的类,这种技术我们称为【】
继承
35当一个对象被当成垃圾从内存中释放时,它的【】方法会被自动调用。
finalize()
36final修饰的方法,不能被子类【】答案:
重写
final修饰的方法为最终方法,不能被重写
37final修饰的局部变量只能被赋值【】次答案:
一
final最终变量,只能赋值一次
38RuntimeException类及其子类都是【】异常答案:
运行时
39自定义异常需要继承【】类答案:
Exception
Exception是所有异常的超类
40构造方法没有返回值类型,因此不能使用【】语句。
return
41构造方法的名称必须和【】保持一致。
类名
42如果在某一个方法中定义的局部变量与成员变量同名时,在该方法中通过变量名访问到的是【】。
局部变量
43类与对象的关系中,【】用于描述多个对象的共同特征,它是对象的模板。
【】用于描述现实中的个体,它是类的实例。
类,对象
类用于描述多个对象的共同特征,它是对象的模板。
对象用于描述现实中的个体,它是类的实例。
44请简述面向对象的三大特征。
封装、继承、多态
面向对象的特点主要可以概括为封装性、继承性和多态性。
其中封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。
继承性主要描述的是类与类之间的关系,通过继承,可以在无需重新编写原有类的情况下,对原有类的功能进行扩展。
多态性指的是在程序中允许出现重名现象,它指在一个类中定义的属性和方法被其它类继承后,它们可以具有不同的数据类型或表现出不同的行为,这使得同一个属性和方法在不同的类中具有不同的语义。
45简述成员变量与局部变量的区别。
1.定义位置的区别:
1)成员变量是定义在方法之外类之内的变量,称作为成员变量(成员属性).
2)局部变量是定义在方法之内的变量。
2.生命周期的区别:
1)成员变量是随着对象的创建而存在,随着对象的消失而消失。
2)局部变量随着方法的调用执行到了创建局部变量的语句的时候存在,局部变量一旦出了自己的作用域马上从内存中消失。
3.存储位置的区别:
1)成员变量是存储于堆内存中的。
2)局部变量是存储于栈内存中的。
4.初始值的区别:
1)成员变量有默认的初始值:
int0
double
float;
char'
'
Stringnull
booleanfalse
2)局部变量没有默认的初始值,要先初始化才能使用。
46请简述类与对象之间的关系。
类是同一种类型对象的抽象,它用于描述一组对象的共同特征和行为。
面向对象的编程思想力图在程序中对事物的描述与该事物在现实中的形态保持一致。
为了做到这一点,面向对象的思想中提出两个概念,即类和对象。
其中,类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体。
47请简要说明使用封装的好处。
1.提高了数据的安全性。
2.隐藏了实现细节。
3.操作简单、方便。
49请阅读下面的程序,在空白处填写正确的代码,定义一个无参构造方法。
publicclassPerson{
public____(){}
}答案:
Person
在一个类中定义的方法如果同时满足以下三个条件,该方法称为构造方法,具体如下:
构造方法的定义需要同时满足三个条件,具体如下:
1:
方法名与类名相同
2:
在方法名的前面没有返回值类型的声明
3:
在方法中不能使用return语句返回一个值
因此,只需在横线处填写Person即可。
50请简述构造方法的特点。
1.构造方法名与类名相同2.在构造方法名的前面没有返回值类型的声明3.在构造方法中不能使用return语句返回一个值
51请简要说明什么是构造方法重载。
与普通方法一样,构造方法也可以重载,在一个类中可以定义多个构造方法,只要每个构造方法的参数类型或参数个数不同即可。
52阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果并分析出现此结果的原因。
否则请说明编译失败的原因。
classCat{
voidmi()throwsNullPointerException{
Catmimi.."
);
publicclassSmallCatextendsCat{
voidmi()throwsException{
SmallCatmimi.."
publicstaticvoidmain(String[]a)throwsException{
Catcat=newSmallCat();
}
程序编译失败。
在子类中,如果要覆盖父类的一个方法,而父类中的方法声明了throws异常,则子类的方法也可以抛出异常,但切记子类方法抛出的异常只能是父类方法抛出的异常的同类或子类,而不能是父类。
53在横线处填入正确的代码,可以让局部变量的age给成员变量的age赋值。
classPerson{
intage;
publicPerson(intage){
______________ewInner();
程序能够编译通过,运行的结果为“inner”
57构造方法和普通的成员方法有什么区别
构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。
而普通方法只有在使用的时候才会被调用。
在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return语句返回一个值。
58阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。
newObject(){
publicvoidshow(){
helloworld"
}.show();
}答案:
helloworld解析:
匿名内部类继承了Object类,并自定义了一个show()方法,
*使用匿名内