JAVA企业面试题集(带答案)-旧版

更新时间:2024-04-30 16:55:02 阅读量: 综合文库 文档下载

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

一. 选择题(234)

1.下面中哪两个可以在 A 的子类中使用:(

class A {

protected int method1 (int a, int b) {

return 0;

}

}

A. public int method 1 (int a, int b) { return 0; } B. private int method1 (int a, int b) { return 0; } C. private int method1 (int a, long b) { return 0; } D. public short method1 (int a, int b) { return 0; } 解答:AC

主要考查子类重写父类的方法的原则

B,子类重写父类的方法,访问权限不能降低

C,属于重载

D,子类重写父类的方法 返回值类型要相同或是父类方法返回值类型的子类

2.Abstract method cannot be static. True or False ? A True B False

解答:A

抽象方法可以在子类中被重写,但是静态方法不能在子类中被重写,静态方法和静态属性与对象是 无关的,只与类有关,这与 abstract 是矛盾的,所以 abstract 是不能被修饰为 static,否则就 失去了 abstract 的意义了

3.What will be the output when you compile and execute the following program. class Base {

void test() { -

System.out.println(\ } }

public class Child extends Base { void test()

{ System.out.println(\); }

static public void main(String[] a) { Child anObj = new Child(); Base baseObj = (Base)anObj;

baseObj.test();

}

}

Select most appropriate answer. A Child.test() Base.test()

B Base.test() Child.test() C Base.test()

D Child.test()

解答:D

测试代码相当于:Base baseObj = new Child();父类的引用指向子类的实例,子类又重写了父类 的 test 方法,因此调用子类的 test 方法。

4.What will be the output when you compile and execute the following program. class Base {

static void test()

{ System.out.println(\); }

}

public class Child extends Base { void test()

{ System.out.println(\Base.test(); //Call the parent method }

static public void main(String[] a) {

new Child().test();

}

}

Select most appropriate answer. A Child.test() Base.test()

B Child.test() Child.test()

C Compilation error. Cannot override a static method by an instance method D Runtime error. Cannot override a static method by an instance method 解答:C

静态方法不能在子类中被重写

5.What will be the output when you compile and execute the following program. public class Base{ private void test()

{ System.out.println(6 + 6 + \}

static public void main(String[] a) {

new Base().test();

}

}

Select most appropriate answer. A 66(Result)

B 12(Result)

C Runtime Error.Incompatible type for +. Can't convert an int to a string. D Compilation Error.Incompatible type for +. Can't add a string to an int. 解答:B

字符串与基本数据类型链接的问题,如果第一个是字符串那么后续就都按字符串处理,比如上边例子要

是 System.out.println(\+ 6 );那么结果就是(Result)66,如果第一个和第二个。。。 第 n 个都是基本数据第 n+1 是字符串类型,那么前 n 个都按加法计算出结果在与字符串连接 6..What will be the output when you compile and execute the following program. The symbol ’

? ’ means space.

1:public class Base{

2:

3: private void test() {

4:

5: \

String aStr = \? One? String bStr = aStr; aStr.toUpperCase(); aStr.trim();

System.out.println(\

6:

7:

8:

9:

7: } 8:

9: static public void main(String[] a) {

10: new Base().test();

11: }

12: }

Select most appropriate answer. A [ONE,? One? ] B [?? ,One]

One

C [ONE,One] D [ONE,ONE]

E [? One? ,? One? ]

解答:E

通过 String bStr = aStr;这句代码使 bStr 和 aStr 指向同一个地址空间,所以最后 aStr 和 bStr 的结

果应该是一样,String 类是定长字符串,调用一个字符串的方法以后会形成一个新的字符串。 7.下面关于变量及其范围的陈述哪些是不正确的(

):

A.实例变量是类的成员变量 B.实例变量用关键字 static 声明 C.在方法中定义的局部变量在该方法被执行时创建 D.局部变量在使用前必须被初始化 解答:BC

由 static 修饰的变量称为类变量或是静态变量

方法加载的时候创建局部变量

8.下列关于修饰符混用的说法,错误的是( ): A.abstract 不能与 final 并列修饰同一个类 B.abstract 类中可以有 private 的成员 C.abstract 方法必须在 abstract 类中 D.static 方法中能处理非 static 的属性 解答 D

:静态方法中不能引用非静态的成员

9.执行完以下代码 int [ ] x = new int[25];后,以下哪项说明是正确的(

):

A、

x[24]为 0 x[24]未定义 x[25]为 0 x[0]为空

B、

C、

D、

解答:A

x 属于引用类型,该引用类型的每一个成员是 int 类型,默认值为:0

10.编译运行以下程序后,关于输出结果的说明正确的是 (

):

public class

Conditional{

public static void main(String args[ ]){

int x=4;

System.out.println(“value is “+ ((x>4) ? 99.9 :9));

} } A、 B、 C、 D、

输出结果为:value is 99.99 输出结果为:value is 9 输出结果为:value is 9.0 编译错误

解答:C

三目运算符中:第二个表达式和第三个表达式中如果都为基本数据类型,整个表达式的运算结果

由容量高的决定。99.9 是 double 类型 而 9 是 int 类型,double 容量高。

11.关于以下 application 的说明,正确的是(

):

1. class StaticStuff

2. { 3. 4. 5. 6.

static int x=10; static { x+=5;}

public static void main(String args[ ]) {

System.out.println(“x=” + x);

7. 8. 9. 10.

}

}

static { x/=3;}

A、 4 行与 9 行不能通过编译,因为缺少方法名和返回类型 B、 9 行不能通过编译,因为只能有一个静态初始化器

C、 编译通过,执行结果为:x=5

D、编译通过,执行结果为:x=3 解答:C 自由块是类加载的时候就会被执行到的,自由块的执行顺序是按照在类中出现的先后顺序执行。 12.关于以下程序代码的说明正确的是(

):

1.class HasStatic{

2.

private static int x=100;

public static void main(String args[ ]){

3.

4. HasStatic hs1=new HasStatic( ); 5. hs1.x++;

6. HasStatic hs2=new HasStatic( ); 7. hs2.x++;

8. hs1=new HasStatic( ); 9. hs1.x++; 10.

HasStatic.x--;

11. System.out.println(“x=”+x);

12. }

13.}

A、5 行不能通过编译,因为引用了私有静态变量 B、10 行不能通过编译,因为 x 是私有静态变量 C、程序通过编译,输出结果为:x=103 D、程序通过编译,输出结果为:x=102

解答:D

静态变量是所有对象所共享的,所以上述代码中的几个对象操作是同一静态变量 x,过类名调用。 13.下列说法正确的有()

A. class 中的 constructor 不可省略

B. constructor 必须与 class 同名,但方法不能与 class 同名

C. constructor 在一个对象被 new 时执行 D.一个 class 只能定义一个 constructor 解答:C

构造方法的作用是在实例化对象的时候给数据成员进行初始化 A.类中如果

没有显示的给出构造方法,系统会提供一个无参构造方法 B.构造方法与类同名,类中可以有和类名相同的方法 D.构造方法可以重载 14.下列哪种说法是正确的() A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法

静态变量可以通

C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法 解答:D

A. 实例方法不可直接调用超类的私有实例方法

B. 实例方法不可直接调用超类的私有的类方法

C.要看访问权限

15.下列哪一种叙述是正确的( )

A. abstract 修饰符可修饰字段、方法和类

B. 抽象方法的 body 部分必须用一对大括号{ }包住

C. 声明抽象方法,大括号可有可无 D. 声明抽象方法不可写出大括号 解答:D

abstract 可以修饰方法和类,不能修饰属性。抽象方法没有方法体,即没有大括号{}

16.下面代码的执行结果是?

import java.util.*;

public class ShortSet{

public static void main(String args[])

{

Set s=new HashSet();

for(Short i=0;i<100;i++)

{

s.add(i);

s.remove(i-1);

}

System.out.println(s.size()); }

} A.1 B.100

C.Throws Exception

D.None of the Above 解答:B

i 是 Short 类型 i-1 是 int 类型,其包装类为 Integer,所以 s.remove(i-1);不能移除 Set 集合中 Short

类型对象。

17.链表具有的特点是:(选择 3 项) A、不必事先估计存储空间 B、可随机访问任一元素 C、插入删除不需要移动元素 D、所需空间与线性表长度成正比 解答:ACD

A.采用动态存储分配,不会造成内存浪费和溢出。

B. 不能随机访问,查找时要从头指针开始遍历

C. 插入、删除时,只要找到对应前驱结点,修改指针即可,无需移动元素

D. 需要用额外空间存储线性表的关系,存储密度小

18.Java 语言中,String 类的 IndexOf()方法返回的类型是?

A、Int16 B、Int32 C、int D、long

解答:C

indexOf 方法的声明为:public int indexOf(int ch)

在此对象表示的字符序列中第一次出现该字符的索引;如果未出现该字符,则返回 -1。

19.以下关于面向对象概念的描述中,不正确的一项是()。(选择 1 项) A.在现实生活中,对象是指客观世界的实体 B.程序中的对象就是现实生活中的对象

C.在程序中,对象是通过一种抽象数据类型来描述的,这种抽象数据类型称为类(class)

D.在程序中,对象是一组变量和相关方法的集合 解答:B

20..执行下列代码后,哪个结论是正确的 String[] s=new String[10]; A. s[9] 为 null; B. s[10] 为 \C. s[0] 为 未定义 D. s.length 为 10

解答:AD

s 是引用类型,s 中的每一个成员都是引用类型,即 String 类型,String 类型默认的值为 null s 数组的长度为 10。

21.属性的可见性有。(选择 3 项) A.公有的 B.私有的 C.私有保护的 D.保护的 解答:ABD

属性的可见性有四种:公有的(public) 保护的(protected) 默认的 私有的(private)

22..在字符串前面加上 A B C D

符号,则字符串中的转义字符将不被处理。(选择 1 项)

@ \\ # %

解答:B

23.下列代码哪行会出错: (选择 1 项)

1) public void modify() {

2) int I, j, k;

3) I = 100;

4) while ( I > 0 ) {

5) j = I * 2;

6) System.out.println (\

7) k = k + 1;

8) I--;

9) }

10) } A. 4 B. 6

C. 7

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

Top