admin 管理员组

文章数量: 887021


2023年12月24日发(作者:抽象类和接口的区别面试)

.

.

测试题(笔试)Java 面向对象

重庆足下科技有限公司

.

不定项选择题(40题,每题2.5分,总分100分,测试时间2小时)

1) 当试图编译并运行下面程序时会出现什么结果()(单选)

class A{

public int getNumber(int a){

return a+1;

}

}

class B extends A{

public int getNumber(int a, char c){

return a+2;

}

public static void main(String[] args){

B b=new B();

n(ber(0));

}

}

a) 编译错误

b) 运行错误

1

c)

2

d)

2)

3)

.

当编译并运行下面程序时会出现什么结果( )(单选)

public class MyAr{

public static void main(String argv[]){

int[] i = new int[5];

n(i[5]);

}

}

a) 编译错误

b) 运行错误

c) 输出0

d) 输出“null”

final、finally、finalize三个关键字的区别是()(多选)

a) final是修饰符(关键字)可以修饰类、方法、变量

b) finally在异常处理的时候使用,提供finally块来执行任何清除操作

c) finalize是方法名,在垃圾收入集器将对象从内存中清除出去之前做必要的清理工作

d) finally和finalize一样都是用异常处理的方法

.

4)

5)

6)

当编译并运行下面程序时会发生什么结果()(单选)

public class Bground extends Thread{

public static void main(String argv[]){

Bground b = new Bground();

();

}

public void start(){

for (int i = 0; i <10; i++){

n("Value of i = " + i);

}

}

}

a) 编译错误,指明run方法没有定义

b) 运行错误,指明run方法没有定义

c) 编译通过并输出0到9

d) 编译通过但无输出

在Java中,如果父类中的某些方法不包含任何逻辑,并且需要由子类重写,应该使用()关键字来声明父类的这些方法。(单选)

Final

a)

Static

b)

Abstract

c)

Void

d)

当编译并运行下面程序时会发生什么结果:(单选)

public class Hope{

public static void main(String argv[]){

Hope h = new Hope();

}

protected Hope(){

for(int i =0; i <10; i ++){

n(i);

}

}

}

a) 编译错误,构造方法不能被声明为protected

b) 运行错误,构造方法不能被声明为protected

c) 编译并运行输出0到10

d) 编译并运行输出0到9

.

.

7)

8)

下列说法正确的是?()(多选)

a) 数组有length()方法

b) String有length()方法

c) 数组有length属性

d) String有length属性

当编译并运行下面程序时会发生什么结果?( )(单选)

public class Test{

public static void stringReplace(String text){

text=text+”c”;

}

public static void bufferReplace(StringBuffer text){

text=("c");

}

public static void main(String args[]){

String textString=new String("java");

StringBuffer textBuffer=new StringBuffer("java");

stringReplace(textString);

bufferReplace(textBuffer);

n(textString+textBuffer);

}

}

a) 编译并运行输出javac javac

b) 编译并运行输出java java

c) 编译并运行输出java javac

d) 编译并运行输出 javac java

以下哪些表达式返回为真()(多选)

String a=”My field1”;

String b=”My field1”;

String c=new String(”My field1”);

String d=new String(”My field1”);

a ==b

a)

a==c

b)

c==d

c)

(b)

d)

(c)

e)

(d)

f)

9)

10)

.

当编译和运行下面程序时,哪项描述可以最准确的表达发生了什么事情( )(单选)

public class MyAr{

.

11)

a)

b)

c)

d)

public static void main(String argv[]) {

MyAr m = new MyAr();

d();

}

public void amethod(){

int i;

n(i);

}

}

编译并输出0

编译错误

编译并输出null

运行错误

12)

.

给定如下java代码程序片断:

class A{

public A(){

n(“A”);

}

}

class B extends A{

public B(){

n(“B”);

}

public static void main(String[] args){

B b=new B();

}

}

上述程序将()(单选)

a) 不能通过编译

b) 通过编译,输出为AB

c) 通过编译,输出为B

d) 通过编译,输出为A

关于线程,以下说法正确的是:()(多选)

a) sleep方法执行时会释放对象锁。

b) wait方法执行时会释放对象锁。

c) sleep方法必须写在同步方法或同步块中

d) wait方法必须写在同步方法或同步块中

.

13)

给定JAVA代码如下,编译运行后,输出结果是()(单选)

public class test{

static int i;

public int test(){

i++;

return i;

}

public static void main(String args[]){

Test test=new Test();

();

n(());

}

}

0

a)

1

b)

2

c)

3

d)

给定JAVA代码如下,关于super的用法,以下描述正确的是( )(单选)

class C extends B

{

public C()

{

super();

}

}

a) 用来调用类B中定义的super()方法

b) 用来调用类C中定义的super()方法

c) 用来调用类B中的无参构造方法

d) 用来调用类B中第一个出现的构造方法

哪些是Thread类中本身的方法(不包括继承) ( )(多选)

start()

a)

sleep(long mi)

b)

wait()

c)

notify()

d)

下面哪些为真()(多选)

a) 接口里可定义变量,并且变量的值不能修改

b) 任何情况下,类都不能被private修饰

c) 类可以被protected修饰

d) 接口不能实例化

14)

15)

16)

.

.

17)

18)

19)

20)

21)

在Java中,下面关于抽象类的描述正确的是()(多选)

a) 抽象类可以被实例化

b) 如果一个类中有一个方法被声明为抽象的,那么这个类必须是抽象类

c) 抽象类的方法都必须是抽象的

d) 声明抽象类必须带有关键字abstract

给定java代码如下,编译运行结果是()(单选)

public class Test{

public int count(){

return 1%9;

}

public static void main(String[]args){

n(count());

}

}

a) 编译错误

b) 运行错误

c) 正常运行,输出1

d) 正常运行,输出0

下面关于网络通信正确的描述是()(多选)

a) TCP/IP协议是一种不可靠的网络通信协议。

b) UDP协议是一种可靠的网络通信协议。

c) TCP/IP协议是一种可靠的网络通信协议。

d) UDP协议是一种不可靠的网络通信协议。

下列哪一种叙述是正确的()(单选)

a) abstract修饰符可修饰属性、方法和类

b) 抽象方法的body部分必须用一对大括号{ }

c) 声明抽象方法,大括号可有可无

d) 声明抽象方法不可写出大括号

下面哪些是正确的描述了关键字synhronized ( )(单选)

a) 允许两个进程并行运行但其之间相互通信

b) 保证任何时候只有一个线程访问一个方法或对象

c) 保证两个或多个进程同时启动和结束

d) 保证两个或多个线程同时启动和结束

.

.

22)

23)

以下代码输出结果为( ) (单选)

public class Test{

public static String output="";

public static void foo(int i){

try {

if(i==1){

throw new Exception();

}

output +="1";

} catch(Exception e){

output+="2";

return;

} finally{

output+="3";

}

output+="4";

}

public static void main(String args[]){

foo(0);

foo(1);

n(output);

}

}

1342

a)

123

b)

134234

c)

13423

d)

在JAVA中,()接口位于集合框架的顶层( ) (单选)

Collection

a)

Collections

b)

List

c)

Set

d)

将对象序列化,要实现哪个接口()(单选)

Cloneable

a)

Runnable

b)

Serializable

c)

Comparator

d)

24)

.

.

25)

26)

27)

28)

29)

在Java中,下列()类不能派生出子类( ) (单选)

public class MyClass{}

a)

class MyClass{}

b)

abstract class MyClass{}

c)

final class MyClass{}

d)

启动一个线程,应调用什么方法()。(单选)

start()

a)

run()

b)

begin()

c)

notify)(

d)

在java中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是( )(单选)

interface A extends B,C

a)

interface A implements B,C

b)

class A implements B,C

c)

class A implements B,implements C

d)

在Java中,以下定义数组的语句正确的是( )(单选)

int t[10]=new int[];

a)

char a[]="hefg";

b)

int t[]=new int[10];

c)

double d=new double[10];

d)

给定一个java程序的main方法的代码片段如下:假如d目录下不存在文件,现运行该程序,下面的结果正确的是():(单选)

try{

PrintWriter out =

new PrintWriter(new FileOutputStream("d:/"));

String name="chen";

(name);

}catch(Exception e){

n("文件没有发现!");

}

a) 将在控制台上打印:"文件没有发现!"

b) 正常运行,但没有生成文件

c) 运行后生成,但该文件中可能无内容

d) 运行后生成,该文件内容为:chen

.

.

30)

31)

集合框架中,要实现对集合里的元素进行自定义排序,要实现哪个接口()(单选)

Cloneable

a)

Runnable

b)

Serializable

c)

Comparator

d)

class Super{

protected float getNum(){return 3.0f;}

}

public class Sub extends Super{

//Here

}

下面哪些代码可放在Here处(多选)

float getNum(){return 4.0f;}

a)

public void getNum(){}

b)

private void getNum(double d){}

c)

public double Getnum(){return 4.0d;}

d)

public float getNum(){return 9;}

e)

在Java语言中,如果你编写一个多线程序,可以使用的方法是()。(多选)

a) 扩展类Thread

b) 实现Runnable接口

c) 扩展类Runnable

d) 实现接口Thread

下面哪些接口直接继承自Collection接口()(多选)

List

a)

Map

b)

Set

c)

Iterator

d)

关于HashMap和Hashtable正确的说法有()(多选)

a) 都实现了Map接口

b) Hashtable类不是同步的,而HashMap类是同步的

c) Hashtable 不允许null键或值

d) HashMap 不允许null键或值

32)

33)

34)

.

.

35)

36)

研究下面的JAVA代码( )(单选)

public class TestException {

/**

* @param args

*/

public static void main(String[] args) {

int a[] = {0,1,2,3,4};

int sum=0;

try

{

for(int i=0;i<6;i++)

{

sum+=a[i];

}

n("sum="+sum);

}

catch(ndexOutOfBoundsException e)

{

n("数组下标越界");

}

finally

{

n("程序结束");

}

}

}

输出结果将是()

a) 10 数组下标越界 程序结束

b) 10 程序结束

c) 数组下标越界 程序结束

d) 程序结束

下面关于构造方法的说法正确的是()(多选)

a) 构造方法不能被继承

b) 构造方法不能被重写

c) 构造方法不能被重载

d) 构造方法不能声明为private

.

.

37)

38)

研究下面JAVA代码

public class TestException {

public static void main(String[] args) {

try

{

n("hello,jr");

(0);

}

finally

{

n("88");

}

}

}

输出结果为()(单选)

hello,jr

a)

88

b)

c) hello,jr后是88

d) 不能编译

考虑下面的代码

public class ConstOver{

public ConstOver(int x,int y,int z){}

}

说出哪些重载了ConstOver构造器?(多选)

ConstOver(){}

a)

protected int ConstOver(){}

b)

private ConstOver(int z,int y,byte z){}

c)

public void ConstOver(byte x,byte y,byte z){}

d)

public Object ConstOver(int x,int y,int z){}

e)

39)

有以下代码:

package com;

public class Test {

public static void main(String[] args) {

Test test = new Test();

//here

}

}

.

.

40)

a)

b)

c)

d)

e)

f)

在here处加上以下什么语句,可以获得Class对象?(多选)

Class c = new Class();

Class c = ;

Class c = ;

Class c = ss();

Class c = e(“”);

Class c = e(“Test”);

能用来修饰interface方法的有( )(多选)

a)

b)

c)

d)

e)

.

private

public

protected

static

不加修饰符

.

答案:1、C

2、B

3、ABC

4、D

5、C

6、D

7、BC

8、C

9、ADEF

10、B

11、B

12、BD

13、C

14、C

15、AB

16、ACD

17、B

18、D

19、CD

20、BD

21、A

22、C

23、D

24、A

25、D

26、A

27、C

28、C

29、C

30、D

31、CDE

32、AB

33、AC

34、AC

35、AB

36、C

37、A

38、AC

39、CDE

40、BE

.


本文标签: 方法 运行 程序 编译 不能