附答案《Java语言》复习资料.docx
《附答案《Java语言》复习资料.docx》由会员分享,可在线阅读,更多相关《附答案《Java语言》复习资料.docx(59页珍藏版)》请在冰豆网上搜索。
附答案《Java语言》复习资料
该答案存在错误之处,仅供参考。
---计科101郝佳
第一章Java语言概论&第二章Java语言程序设计基础
1、单选题
1.一个Java源程序为Test.java,编译该程序应该使用的命令为(B)。
(A)javacTest(B)javacTest.java(C)javaTest(D)javaTest.java
编译:
javac文件名.java
运行:
java文件名
2.下面数据类型的定义中错误的是(C)。
(A)inta=10;(B)doubled=1.2;
(C)floatf=1.2;(D)charc=‘A’;
3.main()方法是JavaApplication程序执行的入口点,关于main()方法的方法头以下哪项是合法的(B)?
(A)publicstaticvoidmain()
(B)publicstaticvoidmain(Stringargs[])publicstaticvoidmain(String[]args)
(C)publicstaticintmain(String[]args)
(D)publicvoidmain(Stringargs[])
4.对一个java源文件aaa.java,编辑保存后但未编译,在其所在目录下执行javaaaa,则接着会出现什么(A)。
(A)error:
cannotread:
aaa.java
(B)无任何显示
(C)Exceptioninthread"main"java.lang.NoClassDefFoundError:
aaa
(D)程序正常执行并显示
5.给出一段程序,试判断哪个是正确的结果。
(D)
publicclassTest{
publicstaticvoidmain(Stringargs[]){
try{
System.out.print("Helloworld");}
finally{System.out.println(“Finallyexecuting”);}}}
(A)无法编译运行,因为没有指定异常
(B)无法编译运行,因为没有catch子句
(C)Helloworld
(D)HelloworldFinallyexecuting
6.设有inta[]={1,2,3,4,5,6,7,8},i=5;则执行System.out.println(a[++i])的值为(B)
(A)6(B)7(C)4(D)8
7.下列不属于java语言鲁棒性特点的是(B)
(A)java能检查程序在变异和运行时的错误
(B)java能运行虚拟机实现跨平台
(C)java自己操纵内存,减少了内存出错的可能性
(D)java语言还实现了真数组,避免了覆盖数据的可能
2、简答题
1.安装JDK后如何对环境变量进行设置?
安装JDK后,还需要设置路径,即把jdk/bin目录加入到执行路径中,该路径是操作系统寻找本地Java运行环境的目录列表。
右击桌面上【我的电脑】图标,在打开的快捷菜单中选择【属性】命令,则弹出【系统属性】的窗口,选择【高级】选项卡,然后单击【环境变量】按钮。
在【环境变量】对话框中选择【系统变量】的path路径,单击【编辑】按钮。
弹出【编辑系统变量】对话框,在【变量值】文本框中加入“C:
\ProgramFiles(x86)\Java\jdk1.7.0_05\bin;”(即jdk/bin目录所在路径,注意路径之间用“;”分隔)。
2.常量和变量有什么区别?
常量的值在运行期间恒定不变,常量标识符在程序中只能被引用,而不能被重新赋值。
使用常量可以增强程序的可读性、课维护性。
变量是一个用来存取数据的存储单元,其中存储的值可以在程序执行过程中修改。
3.写出下面程序的运行结果
(1)考点:
字符串连接方法,Strings1=xx;Strings2=yy;连接为xxyy方法为xx+yy
publicclassabc
{publicstaticvoidmain(Stringargs[])
{ABs=newAB("Hello!
","IloveJAVA.");
System.out.println(s.toString());
}
}
classAB{
Strings1;
Strings2;
AB(Stringstr1,Stringstr2)
{s1=str1;s2=str2;}
publicStringtoString()
{returns1+s2;}
}
Hello!
IloveJAVA.
(2)
publicclassabc
{
publicstaticvoidmain(Stringargs[])
{inti,s=0;
inta[]={10,20,30,40,50,60,70,80,90};
for(i=0;iif(a[i]%3==0)s+=a[i];
System.out.println("s="+s);
}
}
s=180
第3章数组与字符串
一维数组的表示方法:
数据类型数组名[]intscore[]
数据类型[]数组名int[]score
二维数组的表示方法:
数据类型数组名[][]
数据类型[][]数组名
一、选择题
1.在注释//StartForloop处要插入哪段代码可实现根据变量i的值定位数组ia[]的元素?
(D)每个数组都有个属性length,数组(int[]score)长度的表示方法score.length
字符串常用的方法之一:
字符串的长度length()
publicclassLin{
publicvoidamethod(){
intia[]=newint[4];
//StartForloop
{
ia[i]=i;
System.out.println(ia[i]);
}
}
}
(A)for(inti=0;i(B)for(inti=0;i(C)for(inti=1;i<4;i++)
(D)for(inti=0;i2.下列创建二维整型数组正确语句是:
(C)
(A)inta[][]=newint[10,10];
(B)inta[10][10]=newint[][];
(C)inta[][]=newint[10][10];
(D)int[]a[]=newint[10;10];
3.设有如下程序,其调试结果为:
(B)?
?
?
classQ2{
publicstaticvoidmain(String[]args){
int[]seeds={1,2,3,4,6,8};
intn=seeds.length;
for(inti=0;i<3;i++)
for(intk=0;kseeds[k]=seeds[k+1];
for(inti=0;iSystem.out.print("\t"+seeds[i]);
}
}
i=0:
23468
i=1:
34688
i=2:
46888
(A)输出:
12346
(B)输出:
46888
(C)输出:
23468
(D)输出:
2346
4.阅读下面代码,他们完成的功能是(B)
String[]a={“学生”,”自习”,”教师”,”备课”,”学校”};
for(inti=0;iif(a[i].equals(“自习”)){
a[i]=”考试”;
}
}
(A)查找
(B)查找并替换
(C)增加
(D)删除
5.指出下列运行结果(B)?
?
?
publicclassExample{
Stringstr=newString("good");
char[]ch={'a','b','c'};
publicstaticvoidmain(Stringargs[]){
Exampleex=newExample();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+"and");
System.out.print(ex.ch);
}
publicvoidchange(Stringstr,charch[]){
str="testok";
ch[0]='g';
}
}
(A)goodandabc
(B)goodandgbc
(C)testokandabc
(D)Testokandgbc
6.下面的程序段执行后输出的结果是(A)。
StringBufferbuf=newStringBuffer("Beijing2008");
buf.insert(7,"@");
System.out.println(buf.toString());
StringBuffer字符串缓冲区
insert(intoffset,Stringstr)将字符串插入此字符序列中。
(A)Beijing@2008(B)@Beijing2008
(C)Beijing2008@(D)Beijing#2008
7.下列不属于整形变量内容的是(C)
(A)Byte
(B)Short
(C)Float
(D)long
二、填空题
1.字符串分为两大类,一类是字符串常量,使用String类的对象表示;另一类是字符串变量,使用StringBuffer类的对象表示。
2.在java语言中,如果数值后没有字母,计算机默认值为double类型(double)
3.浮点型数据属于实型数据,属于float和double两种(double)
4.标示符是以字母、下划线、美元符号为首字母的字符串序列(字母)
三、简答题:
1.String和StringBuffer的区别
String:
字符串常量,该类创建的对象是不允许改变的,即固定长度,内容不变。
StringBuffer:
字符串变量,该类创建的对象是允许改变的。
2.==与equals的区别
==:
比较的是两个对象的地址是否相同
Equals:
如果没有被重写,比较的是两个对象的地址是否相同。
但是在String中,equal被重写,比较的是两个对象的内容是否相同。
第4章类与对象
类的成员变量:
(1)实例变量:
没有static修饰访问方式:
对象名.实例变量名
(2)类变量/静态变量:
有static修饰访问方式:
类名|对象名.类变量名
类的成员方法:
与上面类似
实例方法可以操作静态变量,但是静态方法不能操作实例变量
抽象类与抽象方法:
用关键字abstract修饰的类称为抽象类。
用关键字abstract修饰的方法称为抽象方法。
抽象类可以包含抽象方法,也可以包含非抽象方法。
但是不能在非抽象类中声明抽象方法。
最终类:
用关键字final声明。
最终类中包含的都是最终方法。
而非最终类也可以包含最终方法。
一、选择题
1.以下程序的运行结果为:
(C)
publicclassA{
staticintk=3;
publicstaticvoidmain(String[]args){
intk=4;
Ax1=newA();
x1.k++;
Ax2=newA();
x2.k++;
k++;
System.out.println(x1.k);
}
}
(A)3(B)4(C)5(D)6
2.编译和运行以下程序结果为:
(B)
publicclassA{
staticintk=3;
staticintm;静态变量,默认值为0
publicstaticvoidmain(String[]args){
k++;
if(m==0)
System.out.println(k);
else
System.out.println(B.k);
k++;
}
}
classB{
staticintk=6;
}
(A)3(B)4(C)5(D).编译错误
3.关于被保护访问控制符protected修饰的成员变量,以下说法正确的是(A)
(A)可以被三种类所引用:
该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
(B)可以被两种类访问和引用:
该类本身、该类的所有子类
(C)只能被该类自身所访问和修改
(D)只能被同一个包中的类访问
4.下列关于修饰符混用的说法,错误的是(D)
(A)abstract不能与final并列修饰同一个类
(B)abstract类中不可以有private的成员方法
(C)abstract方法必须在abstract类中
(D)static方法中能处理非static的属性
Static方法不能操作非static变量
抽象类abstract:
构造方法、静态成员方法不能被声明为抽象方法。
最终类final:
最终类不能被继承。
最终类中包含的都是最终方法。
而非最终类中也可以包含最终方法。
构造函数和静态函数以及Final修饰的函数不能使用abstract修饰符
5.下面是有关子类调用父类的构造方法的描述,正确的是(C)
(A)子类定义了自己的构造方法,就不会调用父类的构造方法
(B)子类必须通过super关键字调用父类没有参数的构造方法
(C)如果子类的构造方法没有通过super调用父类的构造方法,那么子类会先调用用父类不含参数的构造方法,再调用子类自己的构造方法
(D)创建子类对象时,先调用子类自己的构造方法
子类自动调用父类中的无参构造函数
6.假设Foo类有如下定义,设f是Foo的一个实例,下列哪个调用时错误的(A)
PublicclassFoo
{
inti;
staticStrings;
voidimethod(){}
Staticvoidsmethod(){}
}
(A)Foo.imethod();
(B)f.imethod();
(C)System.out.println(f.i);
(D)Foo.smethod()
7.以下程序调试结果为:
(C)
classBase{
Base(){
inti=100;
System.out.print(i);
}
}
publicclassPriextendsBase{
staticinti=200;
publicstaticvoidmain(Stringargv[]){
Prip=newPri();
System.out.print(i);
}
}
(A)编译错误(B)200(C)100200(D)100
8试完成下述程序片段:
(D)
publicclassPoint
{intx,y;
publicPoint(intx,inty)
{ =x; =y;
}
......
}
(A)Point.xPoint.y(B)无解(C)x1y1(D)this.xthis.y
9.以下声明合法的是(C)
(A)defaultStrings;default应该去掉
(B)publicfinalstaticintw();
(C)abstractdoubled;
(D)abstractfinaldoublehyperbolicCosine();
二、填空题:
1.Java原文件中最多只能有一个父类,其他类的个数不限。
2.继承主要强调子类在父类的基础上取长补短,而多态主要强调的是类与类之间的传输。
3.构造函数是类中的一个特殊方法,用它来定义对象的初始状态。
4.java语言中java.lang.Object是所有类的根。
5.在java语言中有一种叫做构造函数特殊方法,在程序中用他来对类成员进行初始化。
(构造函数)
6.定义一个类包括定义类头和定义类体两个部分。
(类体)
7.java是面向对象语言,对象是客观事物的实体,对象与之是一一对应的,他是很具体的概念(实体)
三、简答题
1.简述类和对象的概念以及他们的区别
类:
具有相同属性和方法的一组对象的集合。
对象:
具有类类型的变量。
区别:
类是实体模型的概念,是抽象的,不具体的。
而对象则是一个实体,是真实的,具体的。
2.什么是继承?
父类与子类的关系分别是什么含义,其关系如何?
继承:
从已有类派生出新类的过程称为继承。
父类:
已有类称为父类
子类:
派生出的新类称为子类。
父类和子类的关系:
子类是从父类派生出来的。
子类的实例都是父类的实例,但不能说父类的实例是子类的实例。
3.什么叫方法重写/覆盖(override)?
如果子类要重写/覆盖父类中的某个方法,则子类中的方法声明应该如何进行声明?
方法重写/覆盖:
一个类中不同的的方法使用相同的名字,而方法的参数列表在数据类型、参数个数或者参数次序上有所不同。
子类的成员方法的名字、返回值的类型、参数的个数和类型与父类的某个方法要完全相同。
4.简述public,protected,private的作用,并比较他们的异同?
Public:
用于声明共有类成员,该成员可以被所有类访问。
Private:
用于声明私有类成员,该成员仅能被当前类的成员访问。
Protected:
用于声明保护型类成员,该成员能被当前类及其子类或者当前包中的其他类访问。
第5章集合
Map:
HashMap,TreeMap
Set:
HashMap,TreeMap
List:
ArrayList,LinkedList
Collection接口常用方法:
iterator返会在此Collection上进行迭代的迭代器。
Iterator对Collection进行迭代的迭代器。
一.简答题
1.简述List,Map,set的区别和联系
List(列表):
与数组相似,元素对象可重复。
(有序可重复)
Map(映射):
集合中的元素包含一对键。
对象和值的对象,键不重复,值可以重复。
Set(集):
相当于数学的集合,元素对象不能重复。
(无序不重复)
2.代码编写题
1.读代码,将代码补充完整
_________A_____________//导包
publicclassGest{
publicstaticvoidmain(String[]args){
Listlist=newArrayList();
__________B___________//从键盘上输入
Stringname;
while(true){
System.out.print("访客名称:
");
name=scanner.nextLine();
if(name.equals("quit"))break;
__________C_____________//将name添加到list表单里
}
System.out.print("访客名单");
System.out.println(list);
foreach(list);
}
privatestaticvoidforeach(Listlist){
for(inti=0;i___________D____________//读取list中的信息
____________E_____________//将list中的小写字母转换为大写字母输出
}
}
}
A:
__importjava.util.*_;__________
B:
__Scannerscanner=newScanner(System.in);____
C:
___list.add(name)_;_____________________
D:
____Stringgest=(String)list.get(i);_____________
E:
___System.out.print(gest.toUpperCase()+"");_______
2.假设存在一个person.properties文件,文件内容为:
#summary
#WedSep2617:
02:
11CST2012
age=10
password=123456
username=Mary
读一下代码,补充完整。
importjava.util.*;
importjava.io.*;
publicclassPropertiesDemo2{
publicstaticvoidmain(String[]args)throwsIOException{
A//得到Properties对像对像名自取
B//加载person.properties文件
System.out.println(props);
//从内存集合props中读属性信息,显示在CRT上
System.out.println(C);//输出用户名
System.out.println(D);//输出密码
System.out.println(props.getProperty("description"));
//修改获增加内存集合props中属性信息
props.setProperty("username","Mary");
props.setProperty("sex","female");
props.setProperty("age","60");
props.setProperty("description","一个骨灰级美女");
//将内存集合props中属性信息,存储到磁盘文件person.properties中
E
}
}
A:
Propertiesprops=newProperties();
B:
props