0
点赞
收藏
分享

微信扫一扫

java面向对象面试题(1)


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 局部变变量必须显示的赋值

举报

相关推荐

0 条评论