【262天】我爱刷题系列(21)

叨叨两句

  1. 学着修改本身的内置程序,将不良输入得出的输出调整为本身喜欢的。
  2. 编程的本质就是数据的变换。

题40

Java接口的修饰符能够为(D)

A private     B protected     C final       D abstract
接口内的方法默认修饰符为:public abstract 
接口内的属性默认修饰符为: public static final

题41

ArrayList list = new ArrayList(20);中的list扩充几回(A)

A 0     B 1     C 2      D 3
默认初始容量为10,每次扩充至原来的1.5倍
该题已经设置初始容量为20

题42

getCustomerInfo()方法以下,try中能够捕获三种类型的异常,若是在该方法运行中产生了一个IOException,将会输出什么结果(A)

    public void getCustomerInfo() {

        try {

            // do something that may cause an Exception

        } catch (java.io.FileNotFoundException ex) {

            System.out.print("FileNotFoundException!");

        } catch (java.io.IOException ex) {

            System.out.print("IOException!");

        } catch (java.lang.Exception ex) {

            System.out.print("Exception!");

        }

    }

A IOException!

B IOException!Exception!

C FileNotFoundException!IOException!

D FileNotFoundException!IOException!Exception!

题43

下面代码的运行结果为:(C)

import java.io.*;
import java.util.*;

public class foo{

    public static void main (String[] args){

        String s;

        System.out.println("s=" + s);

    }

}
A 代码获得编译,并输出“s=”

B 代码获得编译,并输出“s=null”

C 因为String s没有初始化,代码不能编译经过

D 代码获得编译,但捕获到 NullPointException异常
局部变量使用前必需要初始化

题44

指出下列程序运行的结果 (B)

public class Example {

    String str = new String("good");

    char[] ch = { 'a', 'b', 'c' };

    public static void main(String args[]) {

        Example ex = new Example();

        ex.change(ex.str, ex.ch);

        System.out.print(ex.str + " and ");

        System.out.print(ex.ch);

    }

    public void change(String str, char ch[]) {

        str = "test ok";

        ch[0] = 'g';

    }
}
A、 good and abc

B、 good and gbc

C、 test ok and abc

D、 test ok and gbc
1. Java中都是值传递,传参时,传的是值的副本,参数也至关于方法的局部变量
2. 这道题所描述的传入引用数据类型和传入基本数据类型的区别在于,有没有改变其内部的元素

题45

下面的方法,当输入为2的时候返回值是多少?(C)

复制代码
    public static int getValue(int i) {
        int result = 0;
        switch (i) {
        case 1:
            result = result + i;
        case 2:
            result = result + i * 2;
        case 3:
            result = result + i * 3;
        }
        return result;
    }
复制代码
A0                    B2                    C4                     D10
本题考查穿透现象

题46

选项中哪一行代码能够替换题目中//add code here而不产生编译错误?(A)

复制代码
public abstract class MyClass {

     public int constInt = 5;
     //add code here
     public void method() {
     }
}
复制代码
Apublic abstract void method(int a);

B constInt = constInt + 5;

C public int method();

D public abstract void anotherMethod() {}
1. 抽象方法不能有方法体
2. 接口中会自动补齐默认的修饰符

题47

下面是People和Child类的定义和构造方法,每一个构造方法都输出编号。在执行new Child("mike")的时候都有哪些构造方法被顺序调用?请选择输出结果 ( D)

复制代码
class People {
    String name;

    public People() {
        System.out.print(1);
    }

    public People(String name) {
        System.out.print(2);
        this.name = name;
    }
}

class Child extends People {
    People father;

    public Child(String name) {
        System.out.print(3);
        this.name = name;
        father = new People(name + ":F");
    }

    public Child() {
        System.out.print(4);
    }
    
}
复制代码
A312              B 32               C 432              D 132
super()调用的是空参的父类构造方法,想要调用有参构造方法,须要往括号里传参数

题48

 23.对于如下关于可变长参数的定义,正确的是:(ACD    )
A: public void show( String[] aa, String... a ){} 
B: public void show( String... a , String[] aa){} 
C: public void show( String... a ){}
D: public void show( String a, double b , String... c){}
可变参数要放参数列表的最后一个

题49

编译运行以下Java代码,输出结果是( D  )
class Base {
    public void method(){
        System.out.print ("Base method");
    }
}
class Child extends Base{    
    public void methodB(){
        System.out.print ("Child methodB");
    }
}
class Sample {
    public static void main(String[] args) {
        Base base = new Child();
        base.methodB(); 
    }
}
    A.    Base method
    B.    Child methodB
    C.    Base method Child MethodB
    D.    编译错误
1. 对于非静态方法,编译看左边,运行看右边,父类中没有methodB方法,因此编译期就没法经过。
2. 若子父类都有一样的方法,则运行时会运行子类重写过的方法