您的位置:首页 > 职场人生

java面向对象面试题(1)

2016-06-29 14:36 555 查看
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();

            System.out.println(b.getNumber(0));

         }

        }

 

a)

编译错误

 

b)

运行错误

 

c)

1

 

d)

2

 

 答案为 C 继承的关系,引用父亲的方法。

2)

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

 

 

public class MyAr{

     public static void main(String argv[]){

          int[] i = new int[5];

          System.out.println(i[5]);

     }

}

 

a)

编译错误

 

b)

运行错误

 

c)

输出0

 

d)

输出“null”

 

 答案 B 因为声明了一个长度为5的数组,下表是从0~4;

3)

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

 

a)

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

 

b)

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

 

c)

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

 

d)

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

 答案 abc  这个不用过多解释

4)

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

 

 

public class Bground extends Thread{

       public static void main(String argv[]){

            Bground b = new Bground();

           b.run();

       }

public void start(){

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

             System.out.println("Value of i = " + i);

       }

}

}

 

 

 

 

a)

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

 

b)

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

 

c)

编译通过并输出0到9

 

d)

编译通过但无输出

 

答案 D 编译通过但是无输出,没有调start();

5)

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

 

 

 

 

a)

Final

 

b)

Static

 

c)

Abstract

 

d)

Void

答案 C 抽象的文字描述

 

6)

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

 

 

public class Hope{

      public static void main(String argv[]){

          Hope h = new Hope();

      }

      protected Hope(){

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

               System.out.println(i);

          }

      }

}

 

a)

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

 

b)

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

 

c)

编译并运行输出0到10

 

d)

编译并运行输出0到9

答案D 构造器。。。

7)

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

 

 

 

 

a)

数组有length()方法

 

b)

String有length()方法

 

c)

数组有length属性

 

d)

String有length属性

 

答案 bc   此题最考察基础,记住就好。

8)

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

 

 

public class Test{

   public static void stringReplace(String text){

        text=text+”c”;

    }

    public static void bufferReplace(StringBuffer text){

        text=text.append("c");

     }

   public static void main(String args[]){  

        String textString=new String("java");

        StringBuffer textBuffer=new StringBuffer("java");

        stringReplace(textString);

        bufferReplace(textBuffer);

        System.out.println(textString+textBuffer);

      }

   }

 

a)

编译并运行输出javac   javac

 

b)

编译并运行输出java    java

 

c)

编译并运行输出java    javac

 

d)

编译并运行输出 javac   java

 

答案 C  String类是不可改变的,字符串通过append()方法添加

9)

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

 

 

String a=”My field1”;

String b=”My field1”;

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

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

 

a)

a ==b

 

b)

a==c

 

c)

c==d

 

d)

a.equals(b)

 

e)

a.equals(c)

 

f)

c.equals(d)

 

 答案:adef

10)

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

 

 

public class MyAr{

       public static void main(String argv[]) {

              MyAr m = new MyAr();

              m.amethod();

       }

public void amethod(){

      int i;

      System.out.println(i);

}

}

 

 

a)

编译并输出0

 

b)

编译错误

 

c)

编译并输出null

 

d)

运行错误

答案 B 局部变变量必须显示的赋值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java