javaoop复习题

更新时间:2024-01-16 19:03:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

笔试题

1.给定如下java代码,下列()方法可以加入到Smaple类中,并且能够编译正确.(选两项) public class Sample{ }

A.private int getSomething(int i , String s); B.public void getSomething(int i);

C.private int getSomething(byte b){return b;} D.public double getSomething(){return 2;}

2.给定如下java代码,编译运行后,结果是(b) public class Sample{ private int x;

public Sample(){ x=1;

}

public void Sample(double f){ this.x=(int)f; }

public int getX(){

return x; }

public static void main(String [] args){ Sample s = new Sample(5.2); }

System.out.println(s.getX()); public int getSomething(int d){ return d; }

}

A. 发生编译错误,编译器提示:出现重复方法Sample

B. 发生编译错误,编译器提示:未定义构造方法Sample(double) C. 正常运行,输出5.2 D. 正常运行,输出5

3.给定如下java代码,编译运行后,将会输出()结果. public class Sample{

public double result(double d1,double d2){

return d1

public double result(int d1,double d2){

return d1>d2?d1:d2;

}

public int result(int d1,int d2){ return d1-d2; }

private int result(int i){

return I;

}

public static void main(String args[]){ }

Sample s = new Sample();

System.out.print(s.result(2,3.0)+”,”); System.out.print(s.result(4.0,4.5)+”,”); System.out.print(s.result(10,9));

}

A.3.0,4.0,1 B.2,4.0,1 C.3.0,4.5,-1 D.-1,4.0,1

4.构成方法重载的要素包括().(选三项) A.方法名称相同 B.返回类型不同 C.参数列表不同 D.在同一个类中

5.在如下所示的Sample类中,共有()个构造方法 public class Sample{ private int x; public Sample(){

}

x=1;

public void Sample(double f){ this.x=(int)f; }

public Sample(){

x=2;

}

public Sample(String s){ } } A.4 B.3

C.2

D.1

6.给出下列java代码,请指出代码中存在的错误().(选两项) class Teacher1{

public Techer1(){ } }

class Teacher2{ }

public class TeacherTest{ public static void main(String [] args){

}

}

A. Teacher1 类中的构造方法名称与类名不相同

B. Teacher2 类中为定义Teacher2(String name)构造方法

C. 测试类中的代码:Teacher1 t1 = new Teacher1(); 不能编译通过 D. 没有错误

7.给定如下java代码,下列()方法可以加入到Child类中,并能够保证编译正确. class Base{ }

public void method(){}

Teacher1 t1 = new Teacher1();

Teacher2 t2 = new Teacher2(“Mr Lee”); public void Teacher2(String name){ }

class Child extends Base{ }

A. public void method(String s){} B. public int method(){return 1;} C. private void method(){}

8.编译运行如下java 代码,以下说法正确的是() class Base{ private String name;

public Base(){

} }

}

class Child extends Base{

name = “Base”;

public void method(){

System.out.println(name);

}

public Child(){ }

super(“Child”); name=”CC”;

public class Sample{

public static void main(String [] args){ }

}

A. 发生编译错误 B. 正常运行,输出:Base C. 正常运行,输出:Child D. 正常运行,输出:CC

9.在子类的构造方法中,使用()关键字调用父类的构造方法 A.base B.super C.this D.extends

10.构成方法重写的要素不包括().(选两项) A.方法名称相同 B.返回类型相同 C.参数列表相同 D.在同一个类中 E.存在子类和父类中 F.返回类型不同

11.编译运行下列java代码,输出结果是() public class Sample{ }

class Base extends Object{ private String name;

public Base(){

name=”Base constructor”; }

public Base(String pName){ name = pName;

public static void main(String [] args){ Child c = new Child(); }

c.method();

Chlild c = new Child(); c.method();

}

public void method(){ System.out.println(name); } }

calss Child extends Base{

public void method(){ } }

System.out.println(“Child method”);

public Child(){

super(“Child constructor”);

}

A. Base constructor B. Child constructor C. Child method

12.下面的程序中定义了一个java接口,其中包含()处错误 public interface Utility{

private int MAX_SIZE=20; int MIN_SIZE=10;

void Use(){ System.out.println(“using it”); }

private int getSize(); void setSize(int i); } A.1 B.2 C.3

D.4

13.给定如下java代码,可以填入下划线处的语句是().(选三项) public interface Utility{}

class FourWheeler inplements Utility{} class Car extends FourWheeler{} class Bus extends FoourWheeler{}

public class Test{ }

public static void main(String [] args){ }

_________

A. Utility car = new Car(); B. C. D. E.

FourWheeler bus = new Bus(); Utility ut = new Utility();

Bus bus = new FourWheeler();

FourWheeler fw = new FourWheeler();

14.以下()修饰符用于声明一个类变量,且该变量的值在运行期间恒定不变. A.static B.final C.static final

D.final static

15.给定下列java 代码,可以填入下划线处的语句是() public interface Constants{

int MAX=50; int MIN = 1;

}

pulbic class Test{ public static void main(String []args){

}

}

A. Constants con = new Constants(); B. Constants.MAX=100;

C. int i = Constants.MAX-Constants.MIN;

D. Constants.MIN>0 ;

16.公有成员变量MAX是一个int型值,变量的值保持参数值100,在类Constants中,可以使用以下()声明语句来定义这个变量. A.public int MAX=100 ; B.final int MAX=100 ;

C.public static int MAX=100 ;

D.public final int MAX = 100;

17.能单独和finally语句一起使用的块是() a.try b.catch c.throw d.throws

18.下面的程序执行结果是()

public class Test{ public static void main(String [] args){ new Test().test();

_________

}

publid void test(){ try{ System.out.print(“try”);

}catch(ArrayIndexOfBoundsException e){

System.out.print(“catch1”); }catch(Exception e){

System.out.print(“catch2”); }finally{ } } }

A. try finally B. try catch1 finally C. try catch2 finally D. finally

19.下面代码正确的是() A. try{

System.out.print(“try”);

}catch(Exception e){ System.out.print(“catch”); } B. try{

}

System.out.print(“try”);

System.out.println(“finally”);

C. try{

System.out.print(“try”); }finally(Exception e){ System.out.print(“finally”); } D try{

System.out.print(“try”); } finally{ }

System.out.print(“finally”);

20.下面的程序的执行结果是() public class Test{ public static void foo(){ try{

String s = null;

String s2 = s.toLowerCase(); }catch(NulllPointerException e){ System.out.print(“2”); }finally{ }

System.out.print(“4”);

System.out.print(“3”);

} }

public static void main(String [] args){ foo(); } a.2 b.34 c.23

d.234

21.下列类中在多重catch中同时使用时,()异常类应该最后列出 a.ArithmeticException b.NumberFormatException

c.Exception

d.ArrayIndexOutOfBoundsException

22.下面关于继承的叙述哪些是正确的() a.在java中只允许单一继承

b.在java中一个类只能实现一个接口

c.在java中一个类不能同时继承一个类和实现一个接口 d.java的单一继承使代码更可靠

23.指出下面关于垃圾收集的哪些叙述哪些是正确的() a.程序开发者必须自己创建一个线程进行内存释放的工作 b.垃圾收集将检查并释放不再使用的内存

c.垃圾收集允许程序开发者明确指定并立即释放该内存 d.垃圾收集能够在期望的时间释放被java对象使用的内存

24.下面关于变量及其范围的叙述哪些是对的() a.实例变量是类的成员变量 b.实例变量用关键字static声明

c.在方法中定义的局部变量在该方法被执行时创建 d.局部变量必须在使用前初始化

25.根据下面给出的代码,确定执行结果() public class Person{

static int arr[]=new int [10];

public static void main(String []args){ System.out.pirnt(arr[1]); }

}

a. 编译错误

b. 编译正确但执行时出错 c. 输出0 d. 输出null

26.一个类中定义的成员变量只能被同一个包中的类访问,下面哪些修饰符可以获得需要的访问控制() a.private

b.没有修饰符 c.public d.protected

27.如果类的设计要求它的某个成员变量不能被外部的类直接访问,应使用下面的哪些修饰符满足设计的要求() a.private

b.没有修饰符

c.public d.protected

28.下面代码的下划线处应放哪个语句,能正确编译() class Person{ String name,department;

int age;

public Person(String n){name = n;}

public Person(String n,int a){name=n;age=a;} public Person(String n,String d,int a){ _________________ }

department = d;

}

a. Person(n,a); b. this.(Person(n,a)); c. this(n,a);

d. this(name,age);

29.阅读下面代码:

public class Parent{ public int addValue(int a,int b){ int s;

}

s = a+b; return s;

}

class Child extends Parent{

}

下面的哪些代码可以放到Child类中() a. int addValue(int a,int b){//语句} b. public void addValue(){//语句} c. public int addValue(int a){//语句}

d. public int addValue(int a,int b)throws Exception{//语句}

30.给出下面代码: class Person{ }

public class Teacher extends Person{

int s;

public void printValue(){ ______________ System.out.print(“s is ”+s); }

}

下面哪些表达式可以加入下划线处() a. printValue(); b. this.printValue(); c. person.printValue(); d. super.printValue();

31.判断下列程序的输出结果()

public class Q1{ public static void main(String [] args){

try{throw new MyException} catch(Exception e){ System.out.print(“It?s caught”); }finally{ } } }

System.out.println(“It?s finally caught”);

String name,department; public void printValue(){ }

System.out.print(“name is”+name);

System.out.print(“department is”+department);

class MyException extends Exception{} a. b. c. d.

It?s caught

It?s finally caught

It?s caught It?s finally caught 无输出

32.下面程序在oneMethod()方法运行时,最有可能会输出什么() public calss Test{ try{

oneMethod();

System.out.println(“情况1”);

}catch(ArrayIndexOutOfBoundsException){ System.out.print(“情况2”); }catch(Exception e){ System.out.print(“情况3”); }finally{ }

System.out.print(“finally”);

}

a. 情况1 finally b. 情况2 finally c. 情况3

d. 情况1 情况3 finally

33.下面4段代码中哪个java源文件代码片断是对的(ACD) a.package testpackage; public class Test{//语句} b. import java.io.*; package testpackage; public class Test{//语句} c. import java.io.*; class Person{//语句} public class Test{//语句} d.import java.io.*; import java.awt.*;

public class Test{//语句}

34.补充完成下列不完整的方法 __________(try) {success = connect(); if(success==-1){ throw new Exception(); }

}

35. &和&&的区别。

&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 36. abstract class和interface有什么区别?

声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个 有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。 然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到 接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

37. 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。 38. List, Set, Map是否继承自Collection接口? List,Set是,Map不是

39. String s = new String(\创建了几个String Object?

两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。

40. public class Something { void doSomething () { private String s = \ int l = s.length(); } }

说出代码中的错误:

局部变量前不能放置任何访问修饰符 (private,public,和protected)。final可以用来修饰局部变量

(final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)。

41. 代码改错:

Something类的文件名叫OtherThing.java. class Something {

private static void main(String[] something_to_do) { System.out.println(\ } } 正确

42. try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 会执行,在return前执行。

43. 在Java中,关于private修饰符的说法中正确的是

a、其修饰的变量或方法只允许自身访问 b、其修饰的变量或方法允许任意类访问 c、权限高于public

d、用private修饰的变量对其子类是可见的。

44. 以下说法中错误的是( )

a Exception是异常层次结构的根类

b 不能加载所需类时将引发ClassNotFoundException c ArithmeticException表示发生了算术错误 d 在方法体内向外抛出异常用throws来完成

45. 在java中,关于等值比较的说法中正确的是()

a.任何情形下“==”比较的都是内存地址 b.equals可用于比较基本数据类型 c.equals总是比较两个对象的内容 d.以上说法都不对 46.

java中的接口就是定义了一种约定,下列接口定义正确的是( )。

a) interface IPrinter { public void print(); } b) interface IPrinter

{ string void print{ }; }

c) interface IPrinter

{ private string color } d) interface IPrinter {

void print()

{System.out.println(“打印机”);} }

47. 以下定义的类中( )不是泛型集合类。

a Student b ArrayList c LinkedList d Map

48. 下面关于设计模式的说法中正确的是(ABC)

a) 设计模式来源于生活,属于方法论范畴

b) 主要源于成功经验总结并解决实际问题出现 c) 不同的设计模式解决不同的问题

d)使用设计模式可以大大简化代码的编写

49.根据下列语句判断哪些表达式返回为true.() String s = “hello”; String t = “hello”;

char [] c = {?h?,?e?,?l?,?l?,?o?}

a.s.equals(t) b.t.equals(c) c.s==t

d.t.equals(new String (“hello”)) e.t==c

50.根据下面的代码片段判断哪些叙述为真.() public void create(){ Vector myVect;

myVect = new Vector();

}

A. 第二行的声明不会为变量myVect分配内存空间 B. 第二行的声明分配一个到Vector对象的引用的内存空间 C. 第二行语句创建一个Vector对象 D. 第三行语句创建一个Vector对象 E. 第三行语句为一个Vector类对象分配内存空间

本文来源:https://www.bwwdw.com/article/i1fo.html

Top