Java刷题总结

选择题

  • 类声明中,声明抽象类的关键字是 (B )
    A.public
    B.abstract
    C.final
    D.class
  • Java中的集合类包括ArrayList、LinkedList、HashMap等,下列关于集合类描述错误的是?©
    A.ArrayList和LinkedList均实现了List接口
    B.ArrayList的访问速度比LinkedList快
    C.随机添加和删除元素时,ArrayList的表现更佳
    D.HashMap实现Map接口,它允许任何类型的键和值对象
    解析;
    ArrayList是基于数组实现的,所以查询快,增删慢;LinkedList是基于链表实现的,所以查找慢,增删快。
  • 以下关于Object类的说法正确的是(A)
    A.Java中所有的类都直接或间接继承自Object,无论是否明确的指明,无论其是否是抽象类。
    B.Java中的接口(interface)也继承了Object类
    C.利用“==”比较两个对象时,Java调用继承自Object的equals方法,判断是否相等。
    D.如果类的定义中没有重新定义toString()方法,则该类创建的对象无法使用toStrig()方法。
    解析:

Object 是基类 Java中的所有的类都直接或间接的继承;所以A对从一个class派生的必然是另一个class。Object是一个class,如果interface继承自Object,那么interface必然是一个class,所以B错,利用equals()方法进行比较时 会调用== 可以看equals()方法的源码,可以这样说,== 比equal更加强大,所以C错,toString()方法是Object类中 即使不重写也能使用 所以D错.

  • 如果一个接口Cup有个方法use(),有个类SmallCup实现接口Cup,则在类SmallCup中正确的是? (C )
    A.void use() { …}
    B.protected void use() { …}
    C.public void use() { …}
    D.以上语句都可以用在类SmallCup中
    解析:
    既然是实现接口,就要实现接口的所以方法,相当于重写方法,方法的重写需要满足:三同一大一小(方法名、返回值类型、形参相同;访问权限>=重写前;抛出异常<=重写前)
  • 一个文件中的字符要写到另一个文件中,首先需要(C )。
    A.使用标准输出流System.out.println()。
    B.建立文件字符输出流。
    C.建立文件字符输入流。
    D.标准输入流System.in.read()。
    解析:
    一个文件中的字符要写到另一个文件中,首先需要读取这个文件,所以要先建立输入流,然后写到另一个文件,这时再建立输出流.所以要先建立输入流,再建立输出流.
  • 类A1和类A2在同一包中,类A2有个protected的方法testA2,类A1不是类A2的子类(或子类的子类),类A1可以访问类A2的方法testA2。(A )
    A.正确
    B.错误
    解析:
    在这里插入图片描述
  • 指出下来程序运行的结果是(B)
    在这里插入图片描述
    A.good and abc
    B.good and gbc
    C.tst ok and abc
    D.tst ok and gbc
    解析:
    实参和形参的问题。"ex.change(ex.str, ex.ch)"语句调用"change"方法时,将ex.str变量(实参)的值赋给了"change"方法中的str变量(形参),而将ex.ch(实参)的地址赋给了"change"方法中的ch(形参)。"change"方法运行时,第一条语句改变的是方法中形参的值,对实参没影响,第二条语句由于是直接改变的ch所指地址的值,所以把实参也进行了改变。
  • Which lines of the following will produce an error?(A)
 - byte a1 = 2, a2 = 4, a3;
 - short s = 16;
 - a2 = s;
 - a3 = a1 * a2;

A.Line 3 and Line 4
B.Line 1 only
C.Line 3 only
D.Line 4 only
解析:
byte+byte=int,低级向高级是隐式类型转换,高级向低级必须强制类型转换,byte<char<short<int<long<float<double。

  • 有关静态初始化块说法正确的是?(ABC)
    A.无法直接调用静态初始化块
    B.在创建第一个实例前或引用任何静态成员之前,将自动调用静态初始化块来初始化
    C.静态初始化块既没有访问修饰符,也没有参数
    D.在程序中,用户可以控制合适执行静态初始化块
    解析:
    JAVA的初始化顺序:
    父类的静态成员初始化>父类的静态代码块>子类的静态成员初始化>子类的静态代码块>父类的代码块>父类的构造方法>子类的代码块>子类的构造方法
    注意:
    1.静态成员和静态代码块只有在类加载的时候执行一次,再次创建实例时,不再执行,因为只在方法区存在一份,属于一整个类。
    2.上述的是通用的加载顺序,如果没有则省略。

  • Java.Thread的方法resume()负责重新开始被以下哪个方法中断的线程的执行(D)。
    A.stop
    B.sleep
    C.wait
    D.suspend
    解析:
    resume与suspended一起使用
    wait与notify(notifyAll)一起使用
    sleep会让线程暂时不执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值