玖叶教程网

前端编程开发入门

Java 面向对象——测试题,笔试,快进来考考你自己

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

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

    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


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

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”


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

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

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

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

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


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

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.编译通过但无输出

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

a.Final

b.Static

c.Abstract

d.Void

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

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


第七题:下列说法正确的是?()(多选)

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=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


第九题:以下哪些表达式返回为真()(多选

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)


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

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.运行错误


第十一题:给定如下java代码程序片断:

      class A{
              public A(){
                      System.out.println(“A”);
              }
      }
      class B extends A{
               public B(){
                      System.out.println(“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方法必须写在同步方法或同步块中


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

public class test{
   static int i;
   public int test(){
    i++;
     return i;
  }
public static void main(String args[]){
 Test test=new Test();
  test.test();
   System.out.println(test.test());
  }
}

a.0

b.1

c.2

d.3


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

class C extends B
{
        public C()
        {
                 super();
       }
}

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

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

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

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


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

a.start()

b.sleep(long mi)

c.wait()

d.notify()


第十六题:下面哪些为真()(多选)

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

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

c.类可以被protected修饰

d.接口不能实例化


第十七题:下面哪些是正确的描述了关键字synhronized ( )(单选)

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

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

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

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


第十八题下列哪一种叙述是正确的()(单选)

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

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

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

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


第十九题:下面关于网络通信正确的描述是()(多选)

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

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

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

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


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

a.抽象类可以被实例化

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

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

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


第二十一题:给定java代码如下,编译运行结果是()(单选)

public class Test{
   public int count(){
     return 1%9;
   }
   public static void main(String[]args){
     System.out.println(count());
   }
}

a.编译错误

b.运行错误

c.正常运行,输出1

d.正常运行,输出0


第二十二题:将对象序列化,要实现哪个接口()(单选)

a.Cloneable

b.Runnable

c.Serializable

d.Comparator


第二十三题:以下代码输出结果为( ) (单选)

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);
 System.out.println(output);  
    }
}

a.1342

b.123

c.134234

d.13423


第二十四题:在JAVA中,()接口位于集合框架的顶层( ) (单选)

a.Collection

b.Collections

c.List

d.Set


第二十五题:在Java中,下列()类不能派生出子类( ) (单选)

a.public class MyClass{}

b.class MyClass{}

c.abstract class MyClass{}

d.final class MyClass{}


第二十六题:启动一个线程,应调用什么方法()。(单选)

a.start()

b.run()

c.begin()

d.notify)(


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

a.interface A extends B,C

b.interface A implements B,C

c.class A implements B,C

d.class A implements B,implements C


第二十八题:在Java中,以下定义数组的语句正确的是( )(单选)

a.int t[10]=new int[];

b.char a[]="hefg";

c.int t[]=new int[10];

d.double d=new double[10];


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

try{
    PrintWriter out  =
                  new PrintWriter(new FileOutputStream("d:/abc.txt"));
           String name="chen";
           out.print(name);
   }catch(Exception e){
     System.out.println("文件没有发现!");
}

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

b.正常运行,但没有生成文件abc.txt

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

d.运行后生成abc.txt,该文件内容为:chen


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

a.Cloneable

b.Runnable

c.Serializable

d.Comparator


第三十一题:下面哪些代码可放在Here处(多选)

    class Super{
             protected float getNum(){return 3.0f;}
      }
    public class Sub extends Super{
             //Here
    }

a.float getNum(){return 4.0f;}

b.public void getNum(){}

c.private void getNum(double d){}

d.public double Getnum(){return 4.0d;}

e.public float getNum(){return 9;}


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

a.扩展类Thread

b.实现Runnable接口

c.扩展类Runnable

d.实现接口Thread


第三十三题:下面哪些接口直接继承自Collection接口()(多选)

a.List

b.Map

c.Set

d.Iterator


第三十四题:关于HashMap和Hashtable正确的说法有()(多选)

a.都实现了Map接口

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

c.Hashtable 不允许null键或值

d.HashMap 不允许null键或值


第三十五题:下面关于构造方法的说法正确的是()(多选)

a.构造方法不能被继承

b.构造方法不能被重写

c.构造方法不能被重载

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


第三十六题:研究下面的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];
                       }
                      System.out.println("sum="+sum);
            }
           catch(java.lang.ArrayIndexOutOfBoundsException e)
           {
                   System.out.println("数组下标越界");
        }
        finally
        {
                   System.out.println("程序结束");
        }
   }
}
输出结果将是()

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

b.10 程序结束

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

d.程序结束


第三十七题:研究下面JAVA代码,输出结果为()(单选)

public class TestException {
       public static void main(String[] args) {
               try
               {
                      System.out.println("hello,jr");
                      System.exit(0);
                }
               finally
               {
                      System.out.println("88");
                 }
       }
}

a.hello,jr

b.88

c.hello,jr后是88

d.不能编译


第三十八题:考虑下面的代码,说出哪些重载了ConstOver构造器?(多选)

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

a.ConstOver(){}

b.protected int ConstOver(){}

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

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

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


第三十九题:有以下代码:

package com;
public class Test {
       public static void main(String[] args) {
             Test test = new Test();
              //here
       }
}

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

a.Class c = new Class();

b.Class c = test.class;

c.Class c = Test.class;

d.Class c = test.getClass();

e.Class c = Class.forName(“com.Test”);

f.Class c = Class.forName(“Test”);


第四十题:能用来修饰interface方法的有( )(多选)

a.private

b.public

c.protected

d.static

e.不加修饰符

需要答案的小伙伴,先关注我,然后可以私信关键词【答案】呦

看到这里的朋友点个赞呀,有收获的小伙伴,给个评论呀!!!

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言