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. 父类引用可以调用不同子类的功能,提高了代码的扩充性和可维护性

Java选择题(十七)相关推荐

  1. 201671010117 2016-2017-2 《Java程序设计》Java第十七周学习心得

    Java第十七周学习心得 这一周老师对线程的内容进行了详细讲解,包括线程创建的两种技术,和线程的优先级属性及调度方法,对于布置的实验作业中,实验九中存在一点问题,程序运行不出来,后来跟同学商量探讨没有 ...

  2. 牛客网Java选择题练习

    牛客网Java选择题练习 2021/1/12 2021/1/13 2021/1/14 2021/1/16 2021/1/17 2021/1/18 2021/1/20 2021/1/21 2021/1/ ...

  3. 系统学习JAVA第十七天(字节流、字符流、缓冲的字节流、缓冲的字符流、将字节流转换为缓冲的字符流、面向对象——>字节流转成对象)

    系统学习JAVA第十七天 第一阶段在2021.2.1结束了! 一.数据传输 IO输入和输出,硬盘之间的数据交换 1.文件读写流程 ①创建文件的容器 ②判断方向 合适的类 创建和文件之间的通道 ③ 调用 ...

  4. 牛客java选择题每日打卡Day17

    牛客java选择题每日打卡Day17

  5. 牛客java选择题每日打卡Day5

    牛客java选择题每日打卡Day5

  6. Java选择题简单的考试系统

    Java选择题简单的考试系统 做前声明: 此系统包括了Java中:面向对象-封装.String-StringBuilder.ArrayList集合.继承-抽象-final.static-接口-多态.四 ...

  7. 牛客java选择题每日打卡Day8

    牛客java选择题每日打卡Day8

  8. Java选择题练习 ---(NKW)

    Java选择题 第一周期: 注:题目均来自于牛客网 1.Java 语言中,负责并发管理的机制是(多线程). 解析:多线程是Java程序的并发机制,它能同步共享数.处理不同的事件. 2.区分类中重载方法 ...

  9. 第二期Java选择题

    第二期Java选择题(30道) 1. 在java中,在同一包内,类Cat里面有个公有方法sleep(),该方法前有static修饰,则可以直接用Cat.sleep().(A) A.正确 B.错误 解析 ...

  10. 小白学JAVA之十七——集合类库

    小白学JAVA之十七--集合类库 一. 集合 1.1 集合的由来 当需要在Java程序中记录单个数据内容时,则声明一个变量. 当需要在Java程序中记录多个类型相同的数据内容时,声明一个一维数组. 当 ...

最新文章

  1. 2021年大数据常用语言Scala(二十五):函数式编程 排序
  2. manage.py命令
  3. C++中左移操作符的重载
  4. MySQLWorkbench链接MySQL数据库
  5. linux交叉编译无法识别gcc编译器
  6. 作为 IT 行业的过来人,你有什么话想对后辈说的?
  7. Cell|严景华/齐建勋首次发现新冠病毒进入细胞的详细分子细节
  8. tomcat部署多个项目,通过域名解析访问,不同的网站
  9. 一个网卡设备配置两个不同网段的IP地址
  10. Spark的操作列表
  11. Javascript:简单的表单验证更改样式
  12. JS/NPAP之间传递数组:NPVARIANT_TO_OBJECT/OBJECT_TO_NPVARIANT
  13. 〖数学算法〗开平方的七种算法
  14. 李飞飞宣布辞职后首次演讲!提出AI三原则;BAT大佬上海打假人工智能
  15. 你应该怎么样活着才有意思
  16. Bootstrap实战(第一弹:栅格实现5等分或8等分)
  17. 计算机的维修有两种,两个汽车电脑维修案例 你未必会修
  18. 企业微信如何实现PC端扫码登录第三方网站
  19. 【BYM】Android 实现相机快门动画,android音视频何俊林
  20. Ubuntu部署轻量化工具supervisor

热门文章

  1. 【初等概率论】 02
  2. 亚马逊云科技 AI For Good-2022优秀方案开源分享——望楼
  3. mysql nan_在MySQL数据库中插入NaN值
  4. hbase 源代码解析(21) 自定义过滤器
  5. 港科喜讯 | 香港科大两位教授荣获立陶宛中央银行颁发的最佳经济学论文奖
  6. PCB布线这几种走线方式,你会吗?
  7. 前端学习——vue基础知识
  8. [Python/转载]Python 100 Day : 初识Python
  9. 在物联网(IOT)背景下服务器怎样和电控板打交道的?
  10. 研报复现初探—华泰金工人工智能选股系列之boosting模型