JAVA语言与WWW技术复习题

发布时间:2018-08-20 23:59:24   来源:文档文库   
字号:

2016-2017年第二学期JAVA语言与WWW技术复习题

一、填空题

1. Java的三大体系分别是___ Java EE _ ______ Java SE _____ Java ME __

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. 异常的捕获通常由trycatch两部分组成,___ try ___代码块用来存放可能发生异常,__ catch __代码块用来处理产生的异常。

11. String类中用于返回字符串字符个数的方法是___ length() __

12. JDK中提供了一系列可以存储任意对象的类,统称为 _集合_ __

13. Java中,能实现线程间通信的流是_管道流 ___

14. System.out__ PrintStream __类的对象,称为标准输出流,调用System类的_ setOut(PrintStream out) __方法可以实现标准输出流的重定向。

15. 在程序开发中,要想将一个包中的类导入到当前程序中,可以使用_ import __关键字。

16. System类中所提供的属性和方法都是_ 静态 ___的,想要引用这些属性和方法,直接使用System类调用即可。

17. Collection有两个子接口分别是ListSetList集合的特点是有序、可重复Set集合的特点是无序、不可重复

18. InputStreamReader类是用于将_字节流___转换为_字符流___

19. Java中,byte类型数据占___1___个字节,short类型数据占__2____个字节,int类型数据占___4___个字节,long类型数据占__8____个字节。

20. 当一个对象被当成垃圾从内存中释放时,它的_ finalize()_____方法会被自动调用。

二、选择题

1.下面哪种类型的文件可以在Java虚拟机中运行?

A.java B.jre C.exe D.class

2. 以下关于变量的说法错误的是?

A、变量名必须是一个有效的标识符

B、变量在定义时可以没有初始值

C、变量一旦被定义,在程序中的任何位置都可以被访问

D、在程序中,可以将一个byte类型的值赋给一个int类型的变量,不需要特殊声明

3. 请先阅读下面的代码。

int x = 1;

int y = 2;

if (x % 2 == 0) {

y++;

} else {

y--;

}

System.out.println("y=" + y);

上面一段程序运行结束时,变量y的值为下列哪一项?

A1 B2 C3 Dswitch语句

4. 在以下什么情况下,构造方法会被调用?

A 类定义时 B 创建对象时

C 调用对象方法时 D 使用对象的变量时

5. 请先阅读下面的代码

public class Test {

public Test(){

System.out.println("构造方法一被调用了");

}

public Test(int x){

this();

System.out.println("构造方法二被调用了");

}

public Test(boolean b){

this(1);

System.out.println("构造方法三被调用了");

}

public static void main(String[] args) {

Test test = new Test(true);

}

}

上面程序的运行结果为下列哪一项?

A构造方法一被调用了 B构造方法二被调用了

C构造方法三被调用了 D、以上三个选项之和

6. 类中的一个成员方法被下面哪个修饰符修饰,该方法只能在本类被访问?

Apublic B protected

C private Ddefault

7. 下面的程序段执行后输出的结果是以下哪个选项?

StringBuffer buf=new StringBuffer("Beijing2008");

buf.insert(7,"@");

System.out.println(buf.toString());

ABeijing@2008 B@Beijing2008

CBeijing2008@ DBeijing#2008

8. Java语言中,集合类都位于哪个包中?

Ajava.util Bjava.lang

Cjava.array Djava.collections

9. 以下选项中,哪个是Filedelete()方法返回值的类型?

A boolean B int

C String D Integer

10.以下对File类的public boolea isFile()方法的描述,哪个是正确的?

A判断该File对象所对应的是否是文件。

B判断该File对象所对应的是否是目录。
C返回文件的最后修改时间。

D在当前目录下生成指定的目录。

11. Java属于以下哪种语言?

A、机器语言 B 汇编语言 C、高级语言 D、以上都不对

12. 假设int x = 2,三元表达式 x>0?x+1:5 的运行结果是以下哪一个?

  A0 B2 C3 D5

13. 在类的继承关系中,需要遵循以下哪个继承原则?

A、多重  B、单一  C、双重  D、不能继承

14. 编译运行下面的程序,结果是什么?

public class A {

public static void main(String[] args) {

B b = new B();

b.test();

}

void test() {

System.out.print("A");

}

}

class B extends A {

void test() {

super.test();

System.out.print("B");

}

}

A、产生编译错误 B、代码可以编译运行,并输出结果AB

C、代码可以编译运行,但没有输出 D、编译没有错误,但会产生运行时异常

15. 以下都是Math类的常用方法,其中用于计算绝对值的方法是哪个?

Aceil() B floor()C abs() Drandom()

16.阅读下面的程序:

public class test { 

  public static void main(String args[]) {   

   int i; 

    float  f = 2.3f;    

double d = 2.7; 

    i = ((int)Math.ceil(f)) * ((int)Math.round(d));     

 System.out.println(i);  

 }

 } 

程序执行后,运行结果为以下哪个选项?

A 9       B 5       C6    D 6.1   

17. 使用Iterator时,判断是否存在下一个元素可以使用以下哪个方法?

Anext() Bhash() ChasPrevious() DhasNext()

18. 类的定义必须包含在以下哪种符号之间

A、方括号[] B、花括号{} C、双引号“” D、圆括号()

19. 要产生[20999]间的随机整数可以使用以下哪个表达式?

A(int)(20+Math.random()*97)

B. 20+(int)(Math.random()*980)

C. (int)Math.random()*999

D. 20+(int)Math.random()*980

20. 先阅读下面的程序片段:

String str1=new String("java");

String str2=new String("java");

StringBuffer str3=new StringBuffer("java");

对于上述定义的变量,以下表达式的值为true的是哪个?

A str1==str2;    Bstr1.equals(str2);  Cstr1==str3;  D、以上都不对

21. 在程序开发中,经常会使用以下哪个类来存储程序中所需的配置?

AHashMap BTreeSet CProperties DTreeMap

22. 要想集合中保存的元素没有重复并且按照一定的顺序排列,可以使用以下哪个集合?

ALinkedList B List ChashSet DTreeSet

三、简答题

1. 简述&&&的区别并举例说明。

如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用“&&”进行连接,当“&&”左边的表达式为false,则不会执行其右边的表达式。例如定义int x = 2,y = 0; boolean b = x < y & x / 2 > 0表达是会发生被0除异常,因为x / y的表达式执行了。而boolean b = x < y & x / 2 > 0是不会出现这种异常的,因为x < yfalse,表达式x / y不会执行。

2. 什么是方法重载?

方法重载指的是在一个类中可以声明多个同名的方法,而方法中参数的个数或者数据类型不一致。调用这些同名的方法时,JVM会根据实际参数的不同绑定到不同的方法。

3. 构造方法和普通的成员方法有什么区别?

构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return语句返回一个值

4. 抽象类和接口的区别?

Java中,使用abstract关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。

接口可以说是一种特殊的抽象类,接口中只能定义常量和抽象方法。由于接口的特殊性,在定义时需要使用interface关键字。

5. StringStringBuffer有什么区别?

String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似String的缓冲区,可以修改字符串的值。

6. 简述Java特点

面向对象跨平台性健壮性安全性可移植性多线程性动态性等。

7. 什么是多态?

多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。简单的说,多态就是使用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序会得到不同的运行效果。

8. 集合中的ListSetMap有什么区别?

List的特点是元素有序、元素可重复。List接口的主要实现类有ListLinkedListSet的特点是元素无序、元素不可重复。Set接口的主要实现类有HashSetTreeSetMap的特点是存储的元素是键(Key)、值(Value)映射关系,元素都是成对出现的。Map接口的主要实现类有HashMapTreeMap

9. 请说说CollectionCollections的有什么区别?

Collection是一个单例集合接口。它提供了对集合对象进行基本操作的通用方法。Collections是一个工具类。它包含各种有关集合操作的方法。

四、程序题

1. 请编写程序,实现计算“1+3+5+7++99”的值。

public class Test01 {

public static void main(String[] args) {

int sum = 0;

for (int i = 1; i < 100; i++) {

if (i % 2 != 0)

sum += i;

}

System.out.println(sum);

}

}

2 请按照以下要求设计一个学生类Student,并进行测试。

要求如下:

1Student类中包含姓名、成绩两个属性

2)分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值.

3Student类中定义一个无参的构造方法和一个接收两个参数的构造方法,两个参数分别为姓名和成绩属性赋值

4)在测试类中创建两个Student对象,一个使用无参的构造方法,然后调用方法给姓名和成绩赋值,一个使用有参的构造方法,在构造方法中给姓名和成绩赋值

class Student {

private String name;

private double grade;

public Student() {

}

public Student(String name, double grade) {

this.name = name;

this.grade = grade;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public double getGrade() {

return grade;

}

public void setGrade(double grade) {

this.grade = grade;

}

}

public class Test01 {

public static void main(String[] args) {

Student stu1 = new Student();

stu1.setName("zhangsan");

stu1.setGrade(99);

Student stu2 = new Student("lisi", 100);

}

}.

3. HashSet集合中添加三个Person对象,把姓名相同的人当做同一个人,禁止重复添加。

提示:

1) Person类中定义nameage属性,重写hashCode()方法和equals()方法,针对Person类的name属性进行比较,如果name同,hashCode()方法的返回值相同,equals方法返回true

import java.util.*;

public class Test02 {

public static void main(String[] args) {

HashSet hashSet = new HashSet();

Person p1 = new Person("Jack",25);

Person p2 = new Person("Rose",23);

Person p3 = new Person("Jack",27);

hashSet.add(p1);

hashSet.add(p2);

hashSet.add(p3);

for(Object obj:hashSet){

Person p=(Person)obj;

System.out.println(p.name+":"+p.age);

}

}

}

class Person{

String name;

int age;

public Person(String name, int age) {

super();

this.name = name;

this.age = age;

}

public int hashCode() {

return name.hashCode();

}

public boolean equals(Object obj) {

if (this == obj)

return true;

if (obj == null)

return false;

Person other = (Person) obj;

return other.name.equals(this.name);

} }

本文来源:https://www.2haoxitong.net/k/doc/c9430a742379168884868762caaedd3382c4b559.html

《JAVA语言与WWW技术复习题.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式