java笔试题(一)

一、单选题

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

C1

D2

答案:C

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

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

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

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、编译通过并输出09

D、编译通过但无输出

答案:D

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

AFinal

BStatic

CAbstract

DVoid

答案:C

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

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、编译并运行输出010

D、编译并运行输出09

答案:D

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

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

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

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

答案:C

给定如下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

答案:C

给定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());

  }

}

A0

B1

C2

D3

答案:C

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

class C extends B

{

    public C()

    {

         super();

    }

}

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

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

C、用来调用类B中的无参构造方法

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

答案:C

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

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

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

C、保证两个或多个进程同时启动和结束

D、保证两个或多个线程同时启动和结束

答案:C

18、下列哪一种叙述是正确的()

Aabstract修饰符可修饰属性、方法和类

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

C、声明抽象方法,大括号可有可无

D、声明抽象方法不可写出大括号

答案:C

21、给定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

答案:C

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

ACloneable

BRunnable

CSerializable

DComparator

答案:C

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); 

 System.out.println(output);  

    } 

}

A1342 

B123

C134234 

D13423

答案:C

24、在JAVA,()接口位于集合框架的顶层( ) 

ACollection

BCollections

CList

DSet

答案:C

25、在Java中,下列()类不能派生出子类( ) 

Apublic class MyClass{}

Bclass MyClass{}

Cabstract class MyClass{}

Dfinal class MyClass{}

答案:C

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

Astart()

Brun()

Cbegin()

Dnotify()

答案:C

27、在java中,已定义两个接口BC,要定义一个实现这两个接口的类,以下语句正确的是( )

Ainterface A extends B,C

Binterface A implements B,C

Cclass A implements B,C

Dclass A implements B,implements C

答案:C

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

Aint t[10]=new int[];

Bchar a[]="hefg";

Cint t[]=new int[10];

Ddouble d=new double[10];

答案:C

29、给定一个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

答案:C

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

ACloneable

BRunnable

CSerializable

DComparator

答案:C

研究下面的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("程序结束");

        }

}

}

输出结果将是()

A10 数组下标越界 程序结束

B10 程序结束

C、数组下标越界 程序结束

D、程序结束

答案:C

研究下面JAVA代码

public class TestException {

public static void main(String[] args) {

try

{

System.out.println("hello,jr");

System.exit(0);

}

finally

{

System.out.println("88");

}

}

}

输出结果为()

Ahello,jr

B88

Chello,jr后是88

D、不能编译

答案:C

二、多选题

3finalfinallyfinalize三个关键字的区别是()

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

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

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

Dfinallyfinalize一样都是用异常处理的方法

答案:ABC

7、下列说法正确的是?()

A、数组有length()方法

BStringlength()方法

C、数组有length属性

DStringlength属性

答案:BC

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

String a=My field1;

String b=My field1;

String c=new String(My field1);

String d=new String(My field1);

Aa ==b

Ba==c

Cc==d

Da.equals(b)

Ea.equals(c)

Fc.equals(d)

答案:ADEF

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

Asleep方法执行时会释放对象锁。

Bwait方法执行时会释放对象锁。

Csleep方法必须写在同步方法或同步块中

Dwait方法必须写在同步方法或同步块中

答案:BD

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

Astart()

Bsleep(long mi)

Cwait()

Dnotify()

答案:AB

16、下面哪些为真() 

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

B、任何情况下,类都不能被private修饰

C、类可以被protected修饰

D、接口不能实例化

答案:ACD

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

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

BUDP协议是一种可靠的网络通信协议。

CTCP/IP协议是一种可靠的网络通信协议。

DUDP协议是一种不可靠的网络通信协议。

答案:CD

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

A、抽象类可以被实例化

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

C、抽象类的方法都必须是抽象的

D、声明抽象类必须带有关键字abstract

答案:C

31、 

 class Super{ 

       protected float getNum(){return 3.0f;} 

   } 

  public class Sub extends Super{ 

       //Here

  }

下面哪些代码可放在Here

Afloat getNum(){return 4.0f;}

Bpublic void getNum(){}

Cprivate void getNum(double d){}

Dpublic double Getnum(){return 4.0d;}

Epublic float getNum(){return 9;}

答案:BD

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

A、扩展类Thread

B、实现Runnable接口

C、扩展类Runnable

D、实现接口Thread

答案:CDE

33、下面哪些接口直接继承自Collection接口()

AList

BMap

CSet

DIterator

答案:AB

34、关于HashMapHashtable正确的说法有()

A、都实现了Map接口

BHashtable类不是同步的,而HashMap类是同步的

CHashtable 不允许null键或值

DHashMap 不允许null键或值

答案:AC

35、下面关于构造方法的说法正确的是()

A、构造方法不能被继承

B、构造方法不能被重写

C、构造方法不能被重载

D、构造方法不能声明为private

答案:AC

考虑下面的代码

public   class  ConstOver{

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

}

说出哪些重载了ConstOver构造器?

AConstOver(){}

Bprotected  int  ConstOver(){}

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

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

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

答案:AC

有以下代码:

package com;

public class Test {

public static void main(String[] args) {

Test test = new Test();

//here

}

}

here处加上以下什么语句,可以获得Class对象?

AClass  c  =  new Class();

BClass  c  =  test.class;

CClass  c  =  Test.class;

DClass  c  =  test.getClass();

EClass  c  =  Class.forName(com.Test);

FClass  c  =  Class.forName(Test);

答案:CDE

40、能用来修饰interface方法的有( )

Aprivate

Bpublic

Cprotected

Dstatic

E、不加修饰符

答案:BE

 

由“JAVA笔试题库”收集整理

你可能感兴趣的:(JAVA)