java复习题教学教材.docx
《java复习题教学教材.docx》由会员分享,可在线阅读,更多相关《java复习题教学教材.docx(45页珍藏版)》请在冰豆网上搜索。
java复习题教学教材
java复习题
1、下列关于java语言特点描述错误的是
A.Java语言不支持指针B.Java具有自动垃圾回收的机制
C.Java只能运行在Window和Linux平台D.Java允许多个线程同时执行
2下列关于JDK的说法中,错误的是?
A.JDK是Java开发工具包的简称B.JDK包括Java编译器、Java文档生成工具、Java打包工具等C.安装JDK后,还需要单独安装JRED.JDK是整个Java的核心
答案:
C
解析:
SUN公司提供了一套Java开发环境,简称JDK(JavaDevelopmentKit),它是整个Java的核心,其中包括Java编译器、Java运行工具、Java文档生成工具、Java打包工具等。
JDK工具中自带了一个JRE工具,也就是说开发环境中包含运行环境,这样一来,开发人员只需要在计算机上安装JDK即可,不需要专门安装JRE工具了。
3下面关于path环境变量的说法中,错误的是?
()
A.path环境变量是系统环境变量中的一种,它用于保存一系列的路径,每个路径之间以分号分隔
B.在命令行窗口输入“setpath”命令,可以查看当前系统的path环境变量
C.在命令窗口对环境变量进行的任何修改只对当前窗口有效,一旦关闭窗口,所有的设置都会被取消
D.配置系统环境变量时以英文半角逗号(,)分隔每一个路径
答案:
D
解析:
配置系统环境变量时时以英文半角分号(;)分隔每一个路径的。
4安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种()
A.Java文档制作工具B.Java解释器C.Java编译器D.Java启动器
答案:
B
1下列选项中,哪一个是单行注释的符号?
()
A.\\B.//C./D.\
答案:
B解析:
//双斜杠表示注释单行代码
2下列常量中,属于整型常量的是?
()
A.198B.2e3fC.trueD.null答案:
A
解析:
2e3f属于浮点数常量,true属于布尔常量,null属于null常量
3下列选项中,哪个是程序的运行结果
classTest{
publicstaticvoidmain(String[]args){
inta=3;
intb=6;
System.out.print(a==b);
System.out.print(a
System.out.print(a!
=b);
System.out.print(a>=b);
}
}
A.falsefalsetruefalseB.falsefalsetruetrueC.falsetruetruefalseD.truefalsefalsetrue
答案:
C解析:
3==6(错),3<6(对),3!
=6(对),3>=6(错)
4若x=6,y=5则表达式intmax=x>y?
x:
y的结果为()
A.6B.5C.trueD.false答案:
A
解析:
三元表达式语法结构:
判断条件?
表达式1:
表达式2当判断条件成立时,运算结果为表达式1的值,否则结果为表达式2的值
5请阅读下面的程序片段
booleanb=true;
if(b=false){
System.out.println("a");
}elseif(b){
System.out.println(b);
}elseif(!
b){
System.out.println("c");
}else{
System.out.println("d");
}
程序的执行结果是()
A.aB.bC.cD.d答案:
C
解析:
条件语句的值为false,所以值为false的语句才可以输出,这里用到了逻辑运算符!
(非)即!
true的值为false,因此输出结果是c
6请阅读下面的程序
publicclassSwitchDemo3{
publicstaticvoidmain(String[]args){
charc=‘B’;
switch©{
case‘A’:
System.out.println(“优”);
break;
case‘B’:
System.out.println(“良”);
break;
case‘C’:
System.out.println(“差”);
break;
}
}
}
下列选项中,哪一个才是程序的运行结果
A.优B.良C.差D.编译失败答案:
B
解析:
charc=’B’与case‘B’相匹配,因此输出结果为“良”
7请阅读下面的程序
PublicclassTest{
publicstaticvoidmain(String[]args){
inta=0;
intb=0;
for(inti=1;i<=5;i++){
a=i%2;
while(a-->=0){
b++;
}
}
System.out.println("a="+a+",b="+b);
}
}
下列选项中,哪一个是正确的运行结果()
A.a=8,b=-2B.a=-2,b=8C.a=3,b=0D.a=0,b=3
答案:
B解析:
本题中有两个循环语句,分别是外层循环的for语句和内层循环的while语句,首先程序会执行for循环中的语句,并执行循环体中的表达式a=i%2,计算出a的值,然后在进入while循环计算b的值,循环往复直到外层循环条件i>5为止
8阅读下面的程序
publicclassTest{
publicstaticvoidmain(String[]args){
for(intx=0;x<=3;x++){
continue;
System.out.print(x%2);
}
}
}
运行结果正确的是
A.跳出循环,无输出B.0121C.01D.0123
答案:
A解析:
continue语句的作用是终止本次循环,因此contine后的代码永远不会被执行,都是无效代码
9____关键字用于包的声明答案:
package解析:
10【】关键字用于引入包答案:
import
11若x=2,则表达式(x++)/3的值是【】答案:
0
12若inta=2;a+=3;执行后,变量a的值为【】答案:
5
13方法重载的条件是:
方法名相同,【】不相同答案:
参数列表
解析:
方法的重载与返回值类型无关,它只有两个条件,一是方法名相同,二是参数列表(参数个数或参数类型)不相同
14定义一个方法时,要有访问修改符、返回值类型、方法名、【】
答案:
参数列表解析:
方法的定义比较严格,必须要有访问修饰符、返回值类型、方法名称、参数列表(参数类型、参数名称)
“隐藏对象的属性和实现细节,仅对外提供公有的方法”描述的是面向对象的哪个特征()
A.封装B.继承C.多态D.以上都不是
答案:
A解析:
封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。
2下列选项中,不属于面向对象特征的是()。
A.继承性B.封装性C.跨平台性D.多态性
答案:
C解析:
面向对象有三种特性,分别是封装性、继承性和多态性。
跨平台性是Java语言的特点,而不是面向对象的特征。
3请阅读下面的代码
classA{
intx;
staticinty;
voidfac(Strings){
System.out.println(“字符串:
”+s);
}
}
下列选项中描述正确的是()
A.x,y和s都是成员变量B.x是实例变量,y是类变量,s是局部变量
C.x和y是实例变量,s是参数D.x,y和s都是实例变量
答案:
B解析:
在方法中声明的s是局部变量,使用static关键字修饰的y是类变量,在类中定义的x是实例变量。
4请阅读下面的程序代码
ClassPerson{
voidsay(){
System.out.println(“hello”);
}
}
classExample{
publicstaticvoidmain(String[]args){
Personp2=newPerson();
Personp1=newPerson();
p2.say();
p1.say();
p2=null;
p2.say();
}
}
下列关于程序运行结果的描述中,正确的是()
A.输出1个helloB.输出2个hello后会抛出异常
C.输出3个hello后会抛出异常D.不会输出hello,直接抛出异常
答案:
B解析:
程序中创建了2个Person对象p1、p2,并分别调用了say()方法输出两个hello,然后将p2对象置为null,使p2对象失去了引用,因此再次使用p2对象调用say()方法时,会抛出异常。
5下列关键字中,用于创建类的实例对象的是()。
A.classB.newC.privateD.void
答案:
B解析:
Java中使用new关键字创建对象,class用于定义一个类,private是权限修饰符,表示表示只能在本类中访问,void表示无返回值
6下面哪个关键字用于将类中的属性私有化()
A.defaultB.publicC.privateD.protected答案:
C
7下面关于调用构造方法的描述中,正确的是()
A.构造方法在类定义的时候被调用B.构造方法在创建对象的时候被调用
C.构造方法在调用对象方法时被调用D.构造方法在使用对象的变量时被调用
答案:
B解析:
调用构造方法创建对象构造方法的作用是为对象中的属性赋值,在创建对象时,构造方法就会被调用。
8下列关于构造方法定义的描述中,错误的是()。
A.方法名与类名相同B.在方法名的前面没有返回值类型的声明C.当定义了有参构造方法,系统默认的无参构造方法依然存在D.在方法中不能使用return语句返回一个值
答案:
C
9下列关于构造方法的描述,错误的是()。
A、一个类中只能定义一个构造方法B、一个类中可以定义多个构造方法C、如果在一个类中定义有参的构造方法,jvm就不会提供默认的无参构造方法D、构造方法的作用是用来给属性进行初始化的答案:
A
10Personp=newPerson(“张三”,23);这条语句会调用下列哪个构造方法给属性进行初始化()
A.publicPerson(){}B.publicPerson(Stringname,intage){this.name=name;this.age=age;}
C.publicPerson(intage,Stringname){this.age=age;this.name=name;}
D.publicPerson(Stringname){this.name=name;}
答案:
B解析:
创建对象时会找到匹配的构造方法给属性进行初始化,由于Personp=newPerson(“张三”,23);这条语句中有两个参数,而且第1个参数是String类型的,第2个参数是int类型的,因此会调用B选项中的构造方法。
11在Java中,要想让一个类继承另一个类,可以使用以下哪个关键字?
A.inheritsB.implementsC.extendsD.modifies答案:
C
12在类的继承关系中,需要遵循以下哪个继承原则?
A.多重B.单一C.双重D.不能继承答案:
B
13已知类的继承关系如下:
classEmployee;
classManagerextendsEmployeer;
classDirectorextendsEmployee;
则以下语句能通过编译的有哪些?
A.Employeee=newManager();B.Directord=newManager();
C.Directord=newEmployee();D.Managerm=newDirector();
答案:
A
14编译运行下面的程序,结果是什么?
publicclassA{
publicstaticvoidmain(String[]args){
Bb=newB();
b.test();
}
voidtest(){
System.out.print("A");
}
}
classBextendsA{
voidtest(){
super.test();
System.out.print("B");
}
}
A.产生编译错误B.代码可以编译运行,并输出结果AB
C.代码可以编译运行,但没有输出D.编译没有错误,但会产生运行时异常
答案:
B
15publicclassExample{
publicstaticvoidmain(String[]args){
try{
intrst=4/0;
System.out.println("ret="+rst);
}catch(Exceptione){
System.out.println("catch语句块执行");
return;
}finally{
System.out.println("finally语句块执行");
}
System.out.println("程序继续向下执行");
}
}
运行以上程序,输出的结果是()
A.catch语句块执行B.catch语句块执行程序继续向下执行
C.catch语句块执行finally语句块执行D.0程序继续向下执行
答案:
C解析:
在try语句块中发生了除零异常,因此会执行catch语句块中的内容,输出"catch语句块执行",finally语句块中表示一定会执行的语句,虽然catch中有return,但依然会输出"finally语句块执行"
16下面程序运行的结果是()
classDemo{
publicstaticvoidmain(String[]args){
try{
intx=div(1,2);
}catch(Exceptione){
System.out.println(e);
}
System.out.println(x)
}
publicstaticintdiv(inta,intb){
returna/b;
}
}
A.输出1B.输出0C.输出0.5D.编译失败答案:
C
17在try{}catch(______e){}横线处需要填写的是()
A.异常对象B.异常类C.任意对象D.任意类
答案:
B解析:
catch代码块需要一个形参指明它所能够接收的异常类型,这个参数的类型必须是Exception类或其子类
18以下对于try…catch语句描述正确的是()
A.try…catch语句处理程序中的错误B.try...catch语句处理程序中的bug
C.try...catch语句处理程序中的异常D.以上说法都不正确
答案:
C解析:
try...catch语句处理程序中的异常
19下列选项中,关于final修饰成员变量的说法正确的是?
()
A.被final修饰的成员变量可以被多次赋值B.被final修饰的成员变量为常量
C.final只能在接口中修饰成员变量D.以上都不对
答案:
B解析:
被final修饰的变量为常量,不能被第二次赋值或改变引用
20下列选项中,不可以被final修饰的是?
()
A.接口B.类C.方法D.变量
答案:
A解析:
final关键字可用于修饰类、变量和方法
题目难度:
★☆☆☆容易
21分析下面程序,哪一行代码能正确赋值?
()
classDemo{
publicvoidmethod(){
finalintnum1=10;
staticintnum2=20;
abstractintnum3=30;
privateintnum4=40;
}
}
A.finalintnum1=10;B.staticintnum2=20;C.abstractintnum3=30;D.privateintnum4=40;
答案:
A解析:
final可以修饰局部变量
22下面程序的运行结果是()
publicclassDemo{
publicstaticvoidmain(String[]args){
try{
System.out.println(10/0);
System.out.println("除法正常运行");
}catch(ArithmeticExceptione){
System.out.println("除数不能为0");
}
}
}
A.编译失败B.编译通过,没有结果输出C.输出:
除法正常运行D.输出:
除数不能为0
答案:
D解析:
虽然是运行时期异常,但是也可以使用try…catch语句进行处理。
一旦进入处理语句就不会再回去执行
23下列选项中,用于解压jar文件的命令是()
A.jar–cB.jar–xC.jar–vD.jar-f
答案:
B解析:
参数x用于解压
24下列选项中,可以导入指定包中所有类的是()
A.package包名;B.package包名.*;C.import包名;D.import包名.*;
答案:
D解析:
如果有时候需要用到一个包中的许多类,则可以使用“import包名.*;”来导入该包下所有类
25下列关于protected的说法中,正确的是()
A.protected修饰的方法,只能给子类使用B.protected修饰的类,类中的所有方法只能给子类使用C.如果一个类的成员被protected修饰,那么这个成员既能被同一包下的其它类访问,也能被不同包下该类的子类访问D.以上都不对
答案:
C解析:
如果一个类的成员被protected访问控制符修饰,那么这个成员既能被同一包下的其它类访问,也能被不同包下该类的子类访问
26如果类的成员被()访问控制符来修饰,则这个成员只能被该类的其它成员访问,其它类无法直接访问
A.privateB.defaultC.protectedD.public
答案:
A解析:
如果类的成员被private访问控制符来修饰,则这个成员只能被该类的其它成员访问,其它类无法直接访问。
类的良好封装就是通过private关键字来实现的
27阅读下列的代码
publicclassTest{
publicstaticvoidmain(String[]args){
_________________________
_________________________
}
}
classOuter{
staticclassInner{
publicvoidmethod(){
System.out.println("method");
}
}
}
下列选项中,填写在空白处可以使程序正常运行的是()
A.Outero=newOuter();o.method();B.InnerI=newInner();i.method();
C.Outer.Inneroi=newOuter.Inner();oi.method();D.以上答案都不对答案:
C
28阅读下列的程序
publicclassTest3{
publicstaticvoidmain(String[]args){
_________________________
_________________________
}
}
classOuter{
staticclassInner{
publicvoidmethod(){
System.out.println("method");
}
}
}
下列选项中,可以正确输出method()方法的是()
A、Outero=newOuter();
o.method();
B、InnerI=newInner();
i.method();
C、Outer.Inneroi=newOuter.Inner();
oi.method();
D、以上答案都不对
答案:
C
29下列关于使用this调用构造方法的说法中,错误的是?
()
A.使用this调用构造方法的格式为this([参数1,参数2…])
B.只能在构造方法中使用this调用其它的构造方法
C.使用this调用其它构造方法的语句必须放在第一行
D.在一个类的两个构造方法中可以使用this互相调用答案:
D
30下列关于this的说法中,错误的是()
A.只能在构造方法中使用this调用其它的构造方法,不能在成员方法中使用
B.在构造方法中,使用this调用构造方法的语句必须位于第一行,且只能出现一次
C.this关键字可以用于区分成员变量与局部变量
D.this可以出现在任何方法中答案:
D
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类与对象的关系中,【】用于描述多个对象的共同特征,它是对象的模板。
【】用于描述现实中的个体,它是类的实例。
答案:
类,对象