Java选择题(十七)

1.为Test类的一个无形式参数无返回值的方法method书写方法头,使得使用类名Test作为前缀就可以调用它,该方法头的形式为( )

正确答案: A 你的答案: A (正确)
A.static void method()
B.public void method
C.protected void method()
D.abstract void method()

解释:
A是静态方法,可以直接用如下形式调用 Test.method();
B是普通public方法,必须实例化类,Test test = new Test(); test.method();
C是protected方法,用法同B,只是对于其他的外部class,protected就变成private;
D是抽象方法,必须被子类继承并重写,然后调用的方式同B。

2.下列关于继承的描述正确的是()

正确答案: C 你的答案: C (正确)
A.在Java中允许定义一个子类的引用,指向父类的对象。
B.在Java中一个子类可以继承多个抽象类,在extends关键字后依次列出,用逗号隔开。
C.在Java中类的继承是通过extends关键字来描述的,而且只允许继承自一个直接父类。
D.在Java中抽象类之间不允许出现继承关系,所有的抽象类都相互独立。

解释:
A Java中父类引用指向子类对象 这是java特性中的多态
B Java类单继承多实现,接口可以多继承,用逗号隔开
C 正确
D 抽象类不能实例化,只能由子类继承后并实现其抽象方法才能实例化

3.下面代码的输出结果是什么?

public class ZeroTest {
    public static void main(String[] args) {
     try{
       int i = 100 / 0;
       System.out.print(i);
      }catch(Exception e){
       System.out.print(1);
       throw new RuntimeException();
      }finally{
       System.out.print(2);
      }
      System.out.print(3);
     }
 }

正确答案: D 你的答案: D (正确)
A.3
B.123
C.1
D.12

解释:
首先执行try,遇到算术异常,抛出,执行catch,打印1,然后抛出RuntimeException,缓存异常,执行finally,打印2,然后抛出RuntimeException。
如果catch中没有抛出RuntimeException,则执行结果为123。

4.instanceof运算符能够用来判断一个对象是否为:

正确答案: C 你的答案: C (正确)
A.一个类的实例
B.一个实现指定接口的类的实例
C.全部正确
D.一个子类的实例

解释:
instanceof是JAVA中的关键字,用来判断一个对象是不是一个类的实例,是不是一个类的子类,是不是一个接口的实现类

5.关于以下程序代码的说明正确的

class HasStatic{
    private static int x = 100;
    public static void main(String args[ ]){
        HasStatic hs1 = new HasStatic();
        hs1.x++;
        HasStatic hs2 = new HasStatic();
        hs2.x++;
        hs1=new HasStatic();
        hs1.x++;
        HasStatic.x--;
        System.out.println( "x=" +x);
    }
}

正确答案: D 你的答案: D (正确)
A.5行不能通过编译,因为引用了私有静态变量
B.10行不能通过编译,因为x是私有静态变量
C.程序通过编译,输出结果为:x=103
D.程序通过编译,输出结果为:x=102

解释:
x的 修饰符为 static 所以x为类变量,即对于所有的实例来说,他们访问的x为同一个x,类变量存储在方法区,不属于每个实例的私有,
刚开始x=100
调用hs1.x++ x为101;
调用hs2.x++ x为102;
调用hs1.x++ x为103 (此时hs1指向了一个新的HasStatic实例,但是依然访问的是同一个X)
调用HasStatic.x-- x为102

6.以下哪个命令用于查看tar(backup.tar)文件的内容而不提取它?()

正确答案: B 你的答案: A (错误)
A.tar -xvf backup.tar
B.tar -tvf backup.tar
C.tar -svf backup.tar
D.none of these

解释:
-s 还原文件的顺序和备份文件内的存放顺序相同。
-t 列出备份文件的内容。
-v 显示指令执行过程。
-f 指定压缩文件
-x 从备份文件中还原文件。

7.将下列哪个代码(A、B、C、D)放入程序中标注的【代码】处将导致编译错误?

class A{
    public float getNum(){
        return 3.0f;
    }
}
public class B extends A{
    【代码】
}

正确答案: B 你的答案: B (正确)
A.public float getNum(){return 4.0f}
B.public void getNum(){}
C.public void getNum(double d){}
D.public double getNum(float d){return 4.0d}

解释:
B类继承自A类,A类中存在一个getNum()方法,问下列哪个会出错。
也就是说,问,下列哪个重写A的getNum()方法出错。

重写要满足的条件:(好比父亲给儿子100块钱让儿子去花)

  1. 参数列表要完全相同——(你拿的就是100块钱,变不成别的,怎么花随你,但是钱数、参数列表不变)

  2. 返回类型是父类方法的返回类型的子类型——(返回值,可以说是你花100得到的是价值小于等于100的东西,你能买回来的一定在100之内)

  3. 访问权限不能大于父类方法权限——(就是访问修饰符要比父类的小于等于)

这里访问权限都相同,返回类型都是基本类型,只看相不相同就可以
A.返回值类型相同,参数名参数列表相同满足方法重写,是正确的
B.返回值类型不同,参数名参数列表相同是重写但不满足重写条件,错误
C.返回值类型不同,参数名参数列表不同不是重写,只是一个重名方法
D.返回值类型不同,参数名参数列表不同不是重写,只是一个重名方法

8.对于JVM内存配置参数:

-Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3

,其最小内存值和Survivor区总大小分别是()
正确答案: D 你的答案: B (错误)
A.5120m,1024m
B.5120m,2048m
C.10240m,1024m
D.10240m,2048m

解释:
Xmx10240m:代表最大堆
-Xms10240m:代表最小堆
-Xmn5120m:代表新生代
-XXSurvivorRatio=3:代表Eden:Survivor = 3 根据Generation-Collection算法(目前大部分JVM采用的算法),一般根据对象的生存周期将堆内存分为若干不同的区域,一般情况将新生代分为Eden ,两块Survivor; 计算Survivor大小, Eden:Survivor = 3,总大小为5120,3x+x+x=5120 x=1024
新生代大部分要回收,采用Copying算法,快!
老年代 大部分不需要回收,采用Mark-Compact算法

9.final、finally、finalize三个关键字的区别是()

正确答案: A B C 你的答案: A B C (正确)
A.final是修饰符(关键字)可以修饰类、方法、变量
B.finally在异常处理的时候使用,提供finally块来执行任何清除操作
C.finalize是方法名,在垃圾收入集器将对象从内存中清除出去之前做必要的清理工作
D.finally和finalize一样都是用于异常处理的方法

解释:
final:可用来定义变量、方法传入的参数、类、方法。
finally:只能跟在try/catch语句中,并且附带一个语句块,表示最后执行。
finalize:是垃圾回收器操作的运行机制中的一部分,进行垃圾回收器操作时会调用finalize方法,因为finalize方法是object的方法,所以每个类都有这个方法并且可以重写这个方法,在这个方法里实现释放系统资源及其他清理工作,JVM不保证此方法总被调用。

10.多态的作用()

正确答案: B C 你的答案: B C (正确)
A.隐藏细节
B.提高可重用性
C.扩展代码模块
D.提高编译可靠性

解释:
多态的作用:

  1. 不必编写每一子类的功能调用,可以直接把不同子类当父类看,屏蔽子类间的差异,提高代码的通用率/复用率
  2. 父类引用可以调用不同子类的功能,提高了代码的扩充性和可维护性
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风儿吹吹吹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值