java综合复习题.docx
《java综合复习题.docx》由会员分享,可在线阅读,更多相关《java综合复习题.docx(16页珍藏版)》请在冰豆网上搜索。
java综合复习题
一、选择题
1.下列说法正确的是(A)
A、JAVA程序的main方法必须写在类里面
B、JAVA程序中可以有多个main方法
C、JAVA程序中类名必须与文件名一样
D、JAVA程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来
2.JDK提供的编译器是(D)
A、java.exeB、javaw.exe
C、javap.exeD、javac.exe
3.关于JAVA语言的叙述,下面哪个是不正确的?
( B )
A、java语言提供的编译器不针对特定的操作系统进行编译。
B、字节码就是机器指令。
C、java虚拟机负责解释、运行字节码。
D、java内置对多线程的支持。
4.下列说法哪个正确?
( A )
A、一个程序可以包含多个源文件
B、一个源文件中只能有一个类
C、一个源文件中可以有多个公共类
D、一个源文件只能供一个程序使用
5.下面关于main方法说明正确的是(B)
(A)publicmain(Stringargs[])
(B)publicstaticvoidmain(Stringargs[])
(C)privatestaticvoidmain(Stringargs[])
(D)voidmain()
7.Java源文件和编译后的文件扩展名分别为( B )
(A).class和 .java (B).java和.class
(C).class和 .class (D).java和 .java
8.Java程序的执行过程中用到一套JDK工具,其中java.exe是指(B)
A.Java文档生成器 B.Java解释器
C.Java编译器 D.Java类分解器
9.关于类的定义方法,下面说法不正确的是(D)。
A、一个Java应用程序的源文件必须含有一个主类。
B、如果一个Java程序的源文件含有多个类,其中最多只能有一个是public类。
C、如果一个类是public类,那么源文件的名字必须和这个类的名字完全相同
D、如果一个Java程序的源文件中没有public的类,源文件可以随意命名。
10.下面哪个语句(初始化数组)是不正确的:
(B)
A.intx[]={1,2,3};B.intx[3]={1,2,3};
C.int[]x={1,2,3};D.intx[]=newint[]{1,2,3};
11.以下哪个不是Java的原始数据类型?
(A)
A、integerB、booleanC、longD、double
12.有如下的程序代码,在执行完后a[0]的值是多少(C)
inta[]={3,4},b[]={5,6};
a=b ;b[0]=7;
A、3B、5C、7D、不确定
13.执行完下面程序片段后,(A)的结论是正确的。
inta,b,c;
a=1;
b=2;
c=(a+b>3?
a++:
b++);
A、a的值是2,b的值是3B、a的值是1,b的值是2
C、a的值是1,b的值是3D、c的值是false
14.下面哪项可以得到数组元素的个数,java中定义数组名为abc,(B)
A、abc.length()B、abc.length
C、len(abc)D、ubound(abc)
15.表达式3/6*5的计算结果是(A)
A、0B、2.5C、0.5D、5
16.表达式(11+3*8)/4%3的值是(D)
A、31B、0C、1D、2
17.设有数组的定义int[]a=newint[3],则下面对数组元素的引用错误的是(C)。
(A)a[0];(B)a[a.length-1];
(C)a[3];(D)inti=1;a[i];
18.关于选择结构下列哪个说法正确?
( B )
A.if语句和else语句必须成对出现
B.if语句可以没有else语句对应
C.switch结构中每个case语句中必须用break语句
D.switch结构中必须有default语句
19.下列代码输出结果是(B)
inti=10;
while(i>0){
i=i+1;
if(i==10){
break;
}
}
A.while循环执行10次
B.死循环
C.循环一次都不执行
D.循环执行一次
20、下面哪条语句把方法声明为抽象的公共方法?
(B)
A.publicabstractmethod();
B.publicabstractvoidmethod();
C.publicabstractvoidmethod(){}
D.publicvoidmethod()extendsabstract;
21.若需要定义一个类属性或类方法,必须使用哪种修饰符?
(D)
A、finalB、package
C、privateD、static
22.假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?
(C)
classA
{inti;
staticStrings;
voidmethod1(){}
staticvoidmethod2(){}
}
A、System.out.println(a.i);B、a.method1();
C、A.method1();D、A.method2()
23.构造函数何时被调用?
( A )
A、创建对象时 B、类定义时
C、使用对象的方法时 D、使用对象的属性时
24.关于构造函数的说法哪个正确?
( C )
A、一个类只能有一个构造函数
B、一个类可以有多个不同名的构造函数
C、构造函数与类同名
D、构造函数必须自己定义,不能使用父类的构造函数
25.以下有关构造方法的说法,正确的是:
(A)
A.一个类的构造方法可以有多个
B.构造方法在类定义时被调用
C.构造方法只能由对象中的其它方法调用
D.构造方法可以和类同名,也可以和类名不同
26.关于包的叙述,下面哪个是不正确的?
( A )
A、一个.java的源程序文件中可以有多条声明包的语句。
B、一个包中的多个类之间不可以重名,不同包中的类名可以相同。
C、声明包用关键字package。
D、一个包中可以包含多个类。
27.下面关于java中类的说法哪个是不正确的?
(C)
A.类体中只能有变量定义和成员方法的定义,不能有其他语句。
B.构造方法是类中的特殊方法。
C.类一定要声明为public的,才可以执行。
D.一个java文件中可以有多个class定义。
28.下面哪个修饰符修饰的方法只能被本类中的其他方法使用(C)
A、protectedB、staticC、privateD、public
29.若在某一个类定义中定义有如下的方法:
finalvoidaFinalFunction();
则该方法属于(C)。
A.本地方法B.静态方法C.最终方法D.抽象方法
30.给出如下代码:
classTest{
privateintm;
publicstaticvoidfun(){
//somecode...
}
}
如何使成员变量m被函数fun()直接访问?
(C)
A、将privateintm改为protectedintm
B、将privateintm改为publicintm
C、将privateintm改为staticintm
D、将privateintm改为intm
31.下面哪一个import命令可以为我们提供编写网络应用程序的类(D)
A、importjava.sql.*;B、importjava.util.*;
C、importjava.io.*;D、import.*;
33.在类的定义中可以有两个同名函数,这种现象称为函数(D)。
(A)封装(B)继承
(C)重写(D)重载
24.在类的定义中构造函数的作用是(D)。
(A)保护成员变量(B)读取类的成员变量
(C)描述类的特征(D)初始化成员变量
35.类的设计要求它的某个成员变量不能被外部类直接访问。
应该使用下面的哪些修饰符获得需要的访问控制?
[D]
A.public
B.不加修饰符
C.protected
D.private
36.void的含义:
( A )
A.方法没有返回值 B.方法体为空
C.没有意义 D. 定义方法时必须使用
37.类与对象的关系是(A)。
(A)类是对象的抽象(B)对象是类的抽象
(C)对象是类的子类(D)类是对象的具体实例
38.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(A)。
(A)staticvoidmethod()
(B)publicvoidmethod()
(C)finalvoidmethod()
(D)abstractvoidmethod()
39.如果一个类的成员变量只能在所在类中使用,则该成员变量必须使用的修饰是C
(A)public(B)protected
(C)private(D)static
40.以下关于继承的叙述正确的是(A)。
A、在Java中类只允许单一继承
B、在Java中一个类只能实现一个接口
C、在Java中一个类不能同时继承一个类和实现一个接口
D、在Java中接口只允许单一继承
41.分析选项中关于Java中this关键字的说法正确的是(A)
A)this关键字是在对象内部指代自身的引用
B)this关键字可以在类中的任何位置使用
C)this关键字和类关联,而不是和特定的对象关联
D)同一个类的不同对象共用一个this
42.有关在Java中定义实例变量和类变量的叙述正确的是(D)
A、前者有public修饰,后者没有public修饰。
B、前者没有public修饰,后者有public修饰。
C、前者有static修饰,后者没有static修饰。
D、前者没有static修饰,后者有static修饰。
43.以下关于继承和接口的叙述正确的是(D)。
A、在Java中接口不允许被继承。
B、在Java中一个类只能实现一个接口。
C、在Java中一个类不能同时继承一个类和实现一个接口。
D、在Java中类只允许单一继承。
44.覆盖与重载的关系是 ( A )
A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中
B.覆盖方法可以不同名,而重载方法必须同名
C.final修饰的方法可以被覆盖,但不能被重载
D.覆盖与重载是同一回事
45.下列类定义中哪些是合法的抽象类的定义?
(C)
A、abstractAnimal{abstractvoidgrowl();}
B、classabstractAnimal{abstractvoidgrowl();}
C、abstractclassAnimal{abstractvoidgrowl();}
D、abstractclassAnimal{abstractvoidgrowl(){System.out.println(“growl”);};}
46. 抽象方法:
(C )
A、可以有方法体
B、可以出现在非抽象类中
C、是没有方法体的方法
D、抽象类中的方法都是抽象方法
47、以下有关类的继承的叙述中,正确的是:
(D)
A.子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性
B.子类只能继承父类的方法,不能继承父类的属性
C.子类只能继承父类的非私有属性,不能继承父类的方法
D.子类不能继承父类的私有属性
48.如果A是B的父类,则表示A类对象是B类对象的上转型对象的语句是:
(D)
A、Bb=newA();B、Bb=newB();
C、Aa=newA();D、Aa=newB();
49.下面关键字中,哪一个不是用于异常处理语句(B)。
(A)try(B)break
(C)catch(D)finally
50.如要抛出异常,应用下列哪种子句?
( B)
A、catchB、throwC、tryD、throws
51、在java的一个异常处理中,哪个语句块可以有多个(A)
A、catchB、finallyC、tryD、throws
52.有如下数据声明:
intx;Strings="123";
将s转化为int型数据的语句,正确的是(A)
A、x=Interger.parseInt(s);B、x=s.parseInt(s);
C、x=x.valueof(s);D、x=String.parseInt(s);
53.以下有关事件监视器的语句错误的是(D)
A、监视器必须向产生事件的Component对象注册
B、监视器是实现了某些事件监视接口的类
C、一个监视器能接收和处理多个Component对象的事件
D、一个Component对象只能有一个监视器
54、Frame对象默认的布局管理器是(B)
A、FlowLayoutB、BorderLayout
C、CardLayoutD、null
55.如果希望所有的控件在界面上均匀排列,应使用下列那种布局管理器?
(B)
A、BoxLayoutB、GridLayoutC、BorderLayoutD、FlowLayout
56.当点击鼠标或者拖动鼠标时,触发的事件是下列的哪一个?
(D)
A)KeyEventB)ActionEvent
C)ItemEventD)MouseEvent
57.当Frame的大小被改变时,Frame中的按钮的位置也可能被改变,请问此时使用的是什么布局管理器[B]
A.BorderLayoutB.FlowLayout
C.CardLayoutD.GridLayout
58、单击一按钮选项,要捕获所选项必需实现哪个接口?
(A)
A.ActionListener B.MouseListener
C.MouseMotionListern D.ItemListener
59.下列哪个方法可以用来加载JDBC驱动程序?
(D)
A.类java.sql.DriverManager的getDriver方法
B.类java.sql.DriverManager的getDrivers方法
C.类java.sql.Driver的connect方法
D.类java.lang.Class的forName方法
60.以下关于继承的叙述不正确的是(B)。
A、子类只能有一个父类
B、子类可以继承使用父类中任何的变量和方法
C、上转型对象不能操作子类新增的变量或方法
D、重写父类中的方法时,不可以降低方法的访问权限
二、填空题
1.编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为类名.class。
创建类对象的运算符是__new。
2.表达式3/6*5的计算结果是__0__。
3.数组x定义如下
intx[][]=newint[3][2]
则x..length的值为____3___.
4.关键字__import_用于导入包中的类到程序中,供程序中使用。
5.ava语言中,通常把可能发生异常的方法调用语句放到try块中,并用紧跟其后的_catch块来捕获和处理异
6.在子类中使用关键字__super_做前缀可调用被子类覆盖的父类中的方法。
7.编译一个定义了两个类和三个方法的.java源程序文件,总共会产生__2_个字节码文件。
8.JPanel容器的默认布局是FlowLayout_。
9.面向对象程序设计的三个特征是封装、多态、继承。
10.Java是面向对象语言,类是客观事物的_抽象_,而对象是类的_实例_。
11.类是Java程序中基本的结构单位。
12.Java语言是一种完全的_面向对象_程序设计语言
13.布尔型常量有两个值,它们分别true_、_false_
14.表达式1/2*9的计算结果是0。
15._常量名__必须完全大写。
16.JAVA语言中提供了两种类型的字符串类来处理字符串,它们是String_和StringBuffer类
17.Java语言中,所有的类都是Object的子类,Java的窗口通常是JFrame_的子类,抽象类只能定义但不能被实例化,最终类不能被继承异常类都是_Exception_的子类。
18.Java源程序文件和字节码文件的扩展名分别为_.java___和_.class_
19.一般Java程序的类体由两部分组成:
一部分是_属性_,另一部分是_方法_
20.子类对父类继承来的属性重新定义称为__重写__。
子类对自身拥有的同名方法的重新定义称_重载___。
21.分别用__class_关键字来定义类,用_new__关键字来分配实例存储空间。
22.this指_当前对象,super指父对象。
23.Java中类成员的限定词有以下几种:
__private__,public_,protected_,_缺省_。
其中,_public__的限定的范围最大。
_private__的限定只能内部访问。
Java中成员变量用___final__修饰符修饰的是常量。
24.在Java语言中,_包_是组织Java程序中类的一种手段,其作用与Windows系统中的__文件夹__类似。
创建包的语句必须是文件的第 一__个语句。
25.在Java中,能实现多重继承效果的方式是 实现多个接口_ 。
26.用 static 修饰的变量叫静态变量,它可以通过_类的对象_ 和_类名_ 两种方式来访问。
27.Java类中,如果类的定义者没有显式的定义任何构造方法,系统将自动提供一个无参默认_构造方法。
默认的构造方法没有_参数____,也没有返回值__,类A的构造方法为:
_publicA(){}。
28、关键字___import___用于导入包中的类到程序中,供程序中使用。
29.java中,抛出自定义异常用 throws____语句,在方法中抛出异常采用___throw__ 语句。
30、在Java中,当一个方法不需要返回数据时返回类型必须是void。
三、阅读理解题
1..阅读以下程序,写出输出结果。
classFirst{
publicFirst(){
aMethod();
}
publicvoidaMethod(){
System.out.println(“inFirstclass”);
}
}
publicclassSecondextendsFirst{
publicvoidaMethod(){
System.out.println(“inSecondclass”);
}
publicstaticvoidmain(String[]args){
newSecond();
}
}
输出结果:
inSecondclass
2.阅读下列程序,写出和程序输出格式一致的输出结果。
classTest{
publicstaticvoidmain(Stringargs[]){
Stringstr1="JAVA";
Stringstr2="JAVA";
Stringstr3=newString("JAVA");
booleanresult1=str1.equals(str2);
booleanresult2=str2.equals(str3);
booleanresult3=str1==str2;
booleanresult4=str2==str3;
System.out.println(result1+","+result2+","+result3+","+result4);
}
}
以下程序的输出结果是true,true,true,false。
3.阅读下列程序,写出和程序输出格式一致的输出结果。
publicclassTest
{publicstaticvoidmain(Stringargs[])
{Strings1,s2;
s1=newString("wearestudents");
s2=newString("wearestudents");
System.out.println(s1.equals(s2));
System.out.println(s1==s2);
}
}
该程序的输出结果:
True
False
4.阅读下列程序,写出和程序输出格式一致的输出结果。
publicclassTest{
publicstaticvoidmain(String[]args){
inta[]={1,2,3,4};
for(inti=a.length-1;i>=0;i--)
System.out.print(a[i]+"");
}
}
程序的输出结果是4321。
5.阅读下列程序,写出和程序输出格式一致的输出结果。
publicclassTest{
publicstaticvoidmain(String[]args){
charc='B';
switch(c){
case'A':
System.out.print("A");
case'B':
System.out.print("B");
case'C':
System.out.print("C");
case'D':
System.out.print("D");
default:
System.out.println("Nomatch!
");
}
}
}
该程序的输出结果:
BCDNomatch
6.以下程序代码存放在文件Two.java中,读程序,写出编译和运行该程序时的输出结果。
publicclassTest{
publicstaticvoidmain(String[]args){
Oneone=newOne("Hello");
one.getString("Xiaoming!
");
}
}