Java测试题(含答案和部分解析)

来源:互联网 发布:mysql 如何使用 编辑:程序博客网 时间:2024/06/05 20:20

一.单项选择题

1.给出如下代码:

class Test{  private int m;  public static void fun() {    // some code...  }}

如何使成员变量m 被函数fun()直接访问(C)

A、将private int m 改为protected int m
B、将private int m 改为 public int m
C、将private int m 改为 static int m
D、将private int m 改为 int m

在静态方法中不能直接访问非静态的成员。

2.Java中main()函数的返回值是什么 (D )

A、 String
B、int
C、char
D、void

3.下面的代码段中,执行之后i 和j 的值是什么? (C)

int i = 1;int j;j = i++;

A、1, 1
B、1, 2
C、2, 1
D、2, 2

4.下面哪个是main()函数的合法参数? ( C )

A、char args[]
B、char args[][]
C、String args[]
D、String args

5.已知表达式int m[] = {0, 1, 2, 3, 4, 5, 6 };

下面哪个表达式的值与数组下标量总数相等?( B )

A、 m.length()
B、m.length
C、m.length()+1
D、m.length+1

这是专属于数组的length属性。

6.已知如下代码:

public class Test{    long a[] = new long[10];    public static void main ( String arg[] ) {    System.out.println ( a[6] );    }}

请问哪个语句是正确的?(C )

A、Output is null.

B、Output is 0.

C、When compile, some error will occur.

D、When running, some error will occur.

在静态方法中不能直接访问非静态的成员,compile:编译。

7.已知如下代码:

boolean m = true;if ( m == false )    System.out.println("False");else    System.out.println("True");

执行结果是什么?(B )

A、False

B、True

C、None

D、An error will occur when running.

8. 当浏览器返回到新URL的包含applet 的页面时调用以下哪个函数(B)

A、 init()
B、start()
C、stop()
D、destroy()

9. 以下哪个方法用于定义线程的执行体?(C)

A、 start()
B、init()
C、run()
D、main()
E、synchronized()

10. 以下哪个约束符可用于定义成员常量?(B)

A、 static
B、final
C、abstract
D、No modifier can be used

static 静态成员变量(在定义这个变量的类的实例中,这个变量是唯一的,即多个实例间这个变量为共享的)
final 成员常量(必须在定义时或在构造方法中赋初值)
final static 静态成员常量,必须在定义这个常量时给定其初始化值

11. 如下哪个语句正确说明了native方法?(A)

A、 public native void test();
B、public native void test(){}
C、public void native test();
D、public native test(){}

12. 已知如下代码:

class Example{    String str;    public Example(){        str= "example";    }    public Example(String s){        str=s;    }}class Demo extends Example{}public class Test{    public void f (){        Example ex = new Example("Good");        Demo d = new Demo("Good");    } }

哪句语句会导致错误?(E)

A、 line 3

B、line 6

C、line 10

D、 line 14

E、 line 15

*在Java中,如果一个类没有定义构造方法,编译器会默认插入一个无参数的构造方法;但是如果一个构造方法在父类中已定义,在这种情况,编译器是不会自动插入一个默认的无参构造方法。
对于子类来说,不管是无参构造方法还是有参构造方法,都会默认调用父类的无参构造方法;当编译器尝试在子类中往这两个构造方法插入super()方法时,因为父类没有一个默认的无参构造方法,所以编译器报错;*

13. 关于sleep()和wait(),以下描述错误的一项是?(D)

A、sleep是线程类(Thread)的方法,wait是Object类的方法;
B、sleep不释放对象锁,wait放弃对象锁;
C、sleep暂停线程、但监控状态仍然保持,结束后会自动恢复;
D、wait后进入等待锁定池,只有针对此对象发出notify方法后获得对象锁进入运行状态。

Notify后是进入对象锁定池,准备获得锁,而不是立即获得。

14. 提供Java存取数据库能力的包是?( A)

A、java.sql
B、java.awt
C、java.lang
D、java.swing

15. 方法resume()负责恢复哪些线程的执行?( D )

A、通过调用stop()方法而停止的线程。
B、通过调用sleep()方法而停止的线程。
C、通过调用wait()方法而停止的线程。
D、通过调用suspend()方法而停止的线程。

17. Java I/O程序设计中,下列描述正确的是(A)

A、OutputStream用于写操作
B、 InputStream用于写操作
C、 I/O库不支持对文件可读可写API

18. 下述代码的执行结果是(E)

class Super {     public int getLength() {    return 4;    }}public class Sub extends Super {     public long getLength() {        return 5;    }    public static void main (String[]args) {        Super sooper = new Super ();         Super sub = new Sub();          System.out.printIn(sooper.getLength()+ “,” + sub.getLength() );    }}

A、 4, 4
B、 4, 5
C、 5, 4
D、 5, 5
E、代码不能被编译

方法覆盖要求参数签名,方法名和返回类型一致。

19. MAX_LENGTH 是int 型public 成员变量,变量值保持为常量1,用简短语句定义这个变量。(D)

A 、public int MAX_LENGTH=1;
B、final int MAX_LENGTH=1;
C、final public int MAX_LENGTH=1;
D、public final int MAX_LENGTH=1;

一般是public ,final ,static这个顺序。

20. 类 Teacher 和 Student 是类 Person 的子类;

Teacher t;Student s;// t and s are all non-null.if (t instanceof Person )    s=(Student)t; 

最后一条语句的结果是: (D)
A、将构造一个Student 对象;
B、表达式是合法的;
C、表达式是错误的;
D、编译时正确, 但运行时错误。

类与类不能强制转换。

21. 欲构造ArrayList类得一个实例,此类继承了List接口,下列哪个方法是正确的(B)

A、 ArrayList myList = new Object();
B、 List myList = new ArrayList();
C、 ArraylList myList = new List();
D、 List myList = new List();

22. Java中,如果类C是类B的子类,类B是类A的子类,那么下面描述正确的是(A)

A、 C不仅继承了B中的成员,同样也继承了A中的成员
B、 C只继承了B中的成员
C、 C只继承了A中的成员
D、 C不能继承A或B中的成员

23. 分析选项中关于Java中this关键字的说法正确的是(A)

A、 this关键字是在对象内部指代自身的引用
B、 this关键字可以在类中的任何位置使用
C、 this关键字和类关联,而不是和特定的对象关联
D、 同一个类的不同对象共用一个this

24. 在JAVA中,LinkedList类和ArrayList类同属于集合框架类,下列(D)选项中的方法是LinkedList类有而ArrayList类没有的。

A、 add(Object o)
B、 add(int index,Object o)
C、 remove(Object o)
D、 removeLast()

25. 在JAVA中ArrayList类实现了可变大小的数组,便于遍历元素和随机访问元素,已知 获得了ArrayList类的对象bookTypeList,则下列语句中能够实现判断列表中是否存在字符串“小说”的是(C)。

A、 bookTypeList.add(“小说”);
B、 bookTypeList.get(“小说”);
C、 bookTypeList.contains(“小说”);
D、bookTypeList.remove(“小说”);

26. 在java中下列关于自动类型转换说法正确的是(A)

A、 基本数据类型和String相加结果一定是字符串型
B、 char类型和int类型相加结果一定是字符
C、 double类型可以自动转换为int
D、 char + int + double +”” 结果一定是double

27. 对象的特征在类中表示为变量,称为类的(B)。

A、 对象
B、 属性
C、 方法
D、 数据类型

28. 在Java中,关于构造方法,下列说法错误的是( C )

A、 构造方法的名称必须与类名相同
B、 构造方法可以带参数
C、 构造方法不可以重载
D、 构造方法绝对不能有返回值

29. 下面(C)不是String类提供的合法的方法。

A、 equals(String)
B、 trim()
C、 append()
D、 indexOf()

30. 在JAVA中,以下(C)类的对象以键-值的方式存储对象

A、 java.util.List
B、 java.util.ArrayList
C、 java.util.HashMap
D、 java.util.LinkedList

二.多项选择题

1. 下面哪几个函数是public void example(){…}的重载函数(AD ),选两项

A、 public void example( int m){…}

B、public int example(){…}

C、public void example2(){…}

D、 public int example ( int m, float f){…}

方法名一定相同,参数签名(参数数量,类型,顺序)一定不同。

2. 给出下面的代码段:

public class Base{    int w, x, y ,z;    public Base(int a,int b)    {    x=a; y=b;    }    public Base(int a, int b, int c, int d)    {        // assignment x=a, y=b        w=d;        z=c;    }}

在代码说明// assignment x=a, y=b处写入如下哪几个代码是正确的(CD),选两项

A、 Base(a,b);

B、x=a, y=b;

C、x=a; y=b;

D、this(a,b);

在方法重载中,调用另一个重载的方法用this。

3. 已知如下定义:String s = “story”;

下面哪个表达式是合法的(AD),选两项

A、 s += “books”;

B、char c = s[1];

C、int len = s.length;

D、 String t = s.toLowerCase();

String类型没有length属性,这个专属于数组。

4. 如下哪些字串是Java中的标识符(AE),选两项

A、 fieldname

B、super

C、3number

D、#number

E、$number

标识符以¥$_或者字母开头,不能用关键字。

5. 如下哪些是Java中有效的关键字(ACDE),选四项

A、 const

B、NULL

C、false

D、this

E、 native

6. 如下哪些是Java中正确的整数表示(ABC), 选三项

A、22

B、0x22

C、022

D、22H

从上到下依次十进制,八进制,十六进制。

7. 下面句话是正确的(AD), 选两项

A、 >> 是算术右移操作符.

B、>> 是逻辑右移操作符.

C、>>> 是算术右移操作符

D、>>> 是逻辑右移操作符

8. 下面哪个赋值语句是合法的(BCD),选三项

A、float a = 2.0

B、double b = 2.0

C、int c = 2

D、long d = 2

Float类型赋值的数字后面要加“f”或者“F”:float a = 2.0f;

9. 在如下源代码文件Test.java中, 哪个是正确的类定义(BD),选两项

A、

public class Test {    public int x = 0;    public test(int x)    {        this.x = x;    }}

B、

public class Test{    public int x=0;    public Test(int x) {        this.x = x;    }}

C、

public class Test extends T1, T2 {    public int x = 0;    public Test (int x) {        this.x = x;    }}

D、

public class Test extends T1{    public int x=0;    public Test(int x){        this.x = x;    }}

E、

protected class Test extends T2{    public int x=0;    public Test(int x){        this.x=x;    }}

构造函数需与本类名称完全相同,不能继承两个父类,protected不能用来修饰类。

10. 已知如下的命令执行 java MyTest a b c

请问哪个语句是正确的(CD),选两项

A、 args[0] = “MyTest a b c”

B、args[0] = “MyTest”

C、args[0] = “a”

D、args[1]= ‘b’

11. 已知如下代码:

public class Test{    public static void main(String arg[])    {        int i = 5;        do {            System.out.println(i);        } while (--i>5)        System.out.println("finished");    }}

执行后的输出是什么(AD),选两项

A、 5

B、4

C、6

D、Finished

E、None

12. 下面代码执行后的输出是什么(ABC),选三项

outer: for(int i=0;i<3; i++)inner: for(int j=0;j<2;j++){    if(j==1) continue outer;    System.out.println(j+ "and "+i);}

A、 0 and 0

B、0 and 1

C、0 and 2

D、1 and 0

E、1 and 1

F、1 and 2

G、2 and 0

H、 2 and 1

I、 2 and 2

易粗心,是先“j”后“i”。

13. 已知如下代码:

switch (m){    case 0: System.out.println("Condition 0");    case 1: System.out.println("Condition 1");    case 2: System.out.println("Condition 2");    case 3: System.out.println("Condition 3");break;    default: System.out.println("Other Condition");}

当m 的值为什么时输出”Condition 2”(ABC),选三项
A、 0
B、1
C、2
D、3
E、4
F、None

14. 已知如下类说明:

public class Test {    private float f = 1.0;    int m = 12;    static int n=1;    public static void main(String arg[]) {    Test t = new Test();    // some code...    }}

如下哪个使用是正确的(AD),选两项

A、 t.f

B、this.n

C、Test.m

D、Test.n

静态变量可以不用创建对象,直接从类中调用。

15. 下面能让线程停止执行的有哪些(ABDEF),选五项

A. sleep();
B. stop();
C. notify();
D. suspend();
E. yield();
F. wait();
G. notifyAll();

原创粉丝点击