JAVA语言与WWW技术复习题doc.docx
《JAVA语言与WWW技术复习题doc.docx》由会员分享,可在线阅读,更多相关《JAVA语言与WWW技术复习题doc.docx(21页珍藏版)》请在冰豆网上搜索。
![JAVA语言与WWW技术复习题doc.docx](https://file1.bdocx.com/fileroot1/2022-12/12/9aa3f3a4-c4f9-42e5-bfd1-ff5b410d73ac/9aa3f3a4-c4f9-42e5-bfd1-ff5b410d73ac1.gif)
JAVA语言与WWW技术复习题doc
2016-2017年第二学期JAVA语言与WWW技术复习题
一、填空题
1.Java的三大体系分别是___JavaEE___、____JavaSE__、___JavaME__。
2.Java中的变量可分为两种数据类型,分别是___基本数据类型_和_引用数据类型__
___。
3.在非静态成员方法中,可以使用关键字__This____访问类的其它非静态成员。
4.被static关键字修饰的成员变量被称为_静态变量__,它可以被该类所有的实例对象共享。
5.编译Java程序需要使用__javac____命令。
6.Java中的程序代码都必须在一个类中定义,类使用___class___关键字来定义。
7.若int[]a={12,45,34,46,23};,则a[2]=__34____。
8.面向对象的三大特征是__封装、__继承__和多态_。
9.定义在类中的变量被称为___成员变量_,定义在方法中的变量被称为__局部变量_。
10.异常的捕获通常由
try
、catch
两部分组成,
___try
___
代码块用来存放可能发生异
常,__catch
__代码块用来处理产生的异常。
11.String类中用于返回字符串字符个数的方法是___length()__。
12.JDK中提供了一系列可以存储任意对象的类,统称为_集合___。
13.在Java中,能实现线程间通信的流是_管道流___。
14.是__PrintStreamsetOut(PrintStreamout)
__类的对象,称为标准输出流,调用
__方法可以实现标准输出流的重定向。
System
类的_
15.在程序开发中,要想将一个包中的类导入到当前程序中,可以使用_import__关键
字。
16.
System类中所提供的属性和方法都是
_
静态
___
的,想要引用这些属性和方
法,直接使用
System类调用即可。
17.
Collection
有两个子接口分别是
List
和Set,List集合的特点是
有序、可重
复
,Set集合的特点是
无序、不可重复
。
18.
InputStreamReader
类是用于将_字节流___转换为_字符流___。
19.
在Java中,byte
类型数据占___1___个字节,short
类型数据占__2____个字节,int
类型数据占___4___个字节,long类型数据占__8____个字节。
20.
当一个对象被当成垃圾从内存中释放时,它的
_finalize()___
__方法会被自动调用。
二、选择题
1.下面哪种类型的文件可以在Java虚拟机中运行?
A、.javaB、.jreC、.exeD、.class
2.以下关于变量的说法错误的是?
A、变量名必须是一个有效的标识符
B、变量在定义时可以没有初始值
C、变量一旦被定义,在程序中的任何位置都可以被访问
D、在程序中,可以将一个byte类型的值赋给一个int类型的变量,不需要特殊声明
3.请先阅读下面的代码。
intx=1;
inty=2;
if(x%2==0){
y++;
}else{
y--;
}
"y="+y);
上面一段程序运行结束时,变量y的值为下列哪一项?
A、1B、2C、3D、switch语句
4.在以下什么情况下,构造方法会被调用?
A、类定义时B、创建对象时
C、调用对象方法时D、使用对象的变量时
5.请先阅读下面的代码
publicclassTest{
publicTest(){
"构造方法一被调用了");
}
publicTest(intx){
this();
"构造方法二被调用了");
}
publicTest(booleanb){
this
(1);
"构造方法三被调用了");
}
publicstaticvoidmain(String[]args){
Testtest=newTest(true);
}
}
上面程序的运行结果为下列哪一项?
A、构造方法一被调用了B、构造方法二被调用了
C、构造方法三被调用了D、以上三个选项之和
6.类中的一个成员方法被下面哪个修饰符修饰,该方法只能在本类被访问?
A、publicB、protected
C、privateD、default
7.下面的程序段执行后,输出的结果是以下哪个选项?
StringBufferbuf=newStringBuffer("Beijing2008");
(7,"@");
、Beijing@2008B、@Beijing2008
C、Beijing2008@D、Beijing#2008
8.Java语言中,集合类都位于哪个包中?
A、B、
C、D、
9.以下选项中,哪个是File类delete()方法返回值的类型?
A、booleanB、int
C、StringD、Integer
10.以下对File类的publicbooleaisFile()方法的描述,哪个是正确的?
A、判断该File对象所对应的是否是文件。
B、判断该File对象所对应的是否是目录。
C、返回文件的最后修改时间。
D、在当前目录下生成指定的目录。
11.Java属于以下哪种语言?
A、机器语言B、汇编语言C、高级语言D、以上都不对
12.假设intx=2,三元表达式x>0?
x+1:
5的运行结果是以下哪一个?
A、0B、2C、3D、5
13.在类的继承关系中,需要遵循以下哪个继承原则?
A、多重B、单一C、双重D、不能继承
14.编译运行下面的程序,结果是什么?
publicclassA{
publicstaticvoidmain(String[]args){
Bb=newB();
();
}
voidtest(){
"A");
}
}
classBextendsA{
voidtest(){
();
"B");
}
}
A、产生编译错误B、代码可以编译运行,并输出结果AB
C、代码可以编译运行,但没有输出D、编译没有错误,但会产生运行时异常
15.以下都是Math类的常用方法,其中用于计算绝对值的方法是哪个?
A、ceil()B、floor()C、abs()D、random()
16.阅读下面的程序:
publicclasstest{
publicstaticvoidmain(Stringargs[]){
inti;
floatf=;
doubled=;
i=((int)(f))*((int)(d));
}
}
程序执行后,运行结果为以下哪个选项?
A、9B、5C、6D、
17.使用Iterator时,判断是否存在下一个元素可以使用以下哪个方法?
A、next()B、hash()C、hasPrevious()D、hasNext()
18.类的定义必须包含在以下哪种符号之间?
A、方括号[]B、花括号{}C、双引号“”D、圆括号()
19.要产生[20,999]之间的随机整数可以使用以下哪个表达式?
A.(int)(20+()*97)
B.20+(int)()*980)
C.(int)()*999
D.20+(int)()*980
20.先阅读下面的程序片段:
Stringstr1=newString("java");
Stringstr2=newString("java");
StringBufferstr3=newStringBuffer("java");
对于上述定义的变量,以下表达式的值为true的是哪个?
A、str1==str2;B、(str2);C、str1==str3;D、以上都不对
21.在程序开发中,经常会使用以下哪个类来存储程序中所需的配置?
A、HashMapB、TreeSetC、PropertiesD、TreeMap
22.要想集合中保存的元素没有重复并且按照一定的顺序排列,可以使用以下哪个集合?
A、LinkedListB、ArrayListC、hashSetD、TreeSet
三、简答题
1.简述&&与&的区别并举例说明。
如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计
算。
如果使用“&&”进行连接,当“&&”左边的表达式为false,则不会执行其右边的表达
式。
例如定义intx=2,y=0;booleanb=x0表达是会发生被0除异
常,因为x/y的表达式执行了。
而booleanb=x0是不会出现这种异
常的,因为
x为
false
,表达式
x/y
不会执行。
2.什么是方法重载?
方法重载指的是在一个类中可以声明多个同名的方法,而方法中参数的个数或者数据类
型不一致。
调用这些同名的方法时,JVM会根据实际参数的不同绑定到不同的方法。
3.构造方法和普通的成员方法有什么区别?
构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。
而普通方法只有在
使用的时候才会被调用。
在定义构造方法时要求方法名与类名相同、在方法名的前面没
有返回值类型的声明、在方法中不能使用return语句返回一个值
4.抽象类和接口的区别?
在Java中,使用abstract关键字修饰的类称之为抽象类。
抽象类是不能被实例化的,
通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。
抽象类通常用于表示一种抽象的概念。
接口可以说是一种特殊的抽象类,接口中只能定义常量和抽象方法。
由于接口的特殊性,在定义时需要使用interface关键字。
5.String
和StringBuffer
有什么区别?
String类是不可变类,即字符串值一旦初始化后就不可能改变。
符串类,类似String的缓冲区,可以修改字符串的值。
StringBuffer
是可变字
6.简述Java的特点。
面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。
7.什么是多态?
多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。
简单的说,多态就是使用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序会得到不同的运行效果。
8.集合中的List、Set、Map有什么区别?
List的特点是元素有序、元素可重复。
List接口的主要实现类有ArrayList和LinkedList。
Set的特点是元素无序、元素不可重复。
Set接口的主要实现类有HashSet和TreeSet。
Map
的特点是存储的元素是键(Key)、值(Value)映射关系,元素都是成对出现的。
Map接口的主
要实现类有HashMap和TreeMap。
9.请说说Collection和Collections的有什么区别?
Collection是一个单例集合接口。
它提供了对集合对象进行基本操作的通用方法。
Collections是一个工具类。
它包含各种有关集合操作的方法。
四、程序题
1.请编写程序,实现计算“1+3+5+7++99”的值。
publicclassTest01{
publicstaticvoidmain(String[]args){
intsum=0;
for(inti=1;i<100;i++){
if(i%2!
=0)
sum+=i;
}
}
}
2.请按照以下要求设计一个学生类Student,并进行测试。
要求如下:
1)Student类中包含姓名、成绩两个属性
2)分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值.
3)Student类中定义一个无参的构造方法和一个接收两个参数的构造方法,两个参数
分别为姓名和成绩属性赋值
4)在测试类中创建两个Student对象,一个使用无参的构造方法,然后调用方法给姓
名和成绩赋值,一个使用有参的构造方法,在构造方法中给姓名和成绩赋值
classStudent{
privateStringname;
privatedoublegrade;
publicStudent(){
}
publicStudent(Stringname,doublegrade){
=name;
=grade;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
=name;
}
publicdoublegetGrade(){
returngrade;
}
publicvoidsetGrade(doublegrade){
=grade;
}
}
publicclassTest01{
publicstaticvoidmain(String[]args){
Studentstu1=newStudent();
("zhangsan");
(99);
Studentstu2=newStudent("lisi",100);
}
}.
3.在HashSet集合中添加三个Person对象,把姓名相同的人当做同一个人,禁止重复添加。
提示:
1)Person类中定义name和age属性,重写hashCode()方法和equals()方法,针对Person类的name属性进行比较,如果name相同,hashCode()方法的返回值相同,equals方法返回true。
import.*;
publicclassTest02{
publicstaticvoidmain(String[]args){
HashSethashSet=newHashSet();
Personp1=newPerson("Jack",25);
Personp2=newPerson("Rose",23);
Personp3=newPerson("Jack",27);
(p1);
(p2);
(p3);
for(Objectobj:
hashSet){
Personp=(Person)obj;
":
"+;
}
}
}
classPerson{
Stringname;
intage;
publicPerson(Stringname,intage){
super();
=name;
=age;
}
publicinthashCode(){
return();
}
publicbooleanequals(Objectobj){
if(this==obj)
returntrue;
if(obj==null)
returnfalse;
Personother=(Person)obj;
return}}