2021-10-08错题

场景:

在练习


错题

错题1描述:

假设num已经被创建为一个ArrayList对象,并且最初包含以下整数值:[0,0,4,2,5,0,3,0]。 执行下面的方法numQuest(),最终的输出结果是什么?

private List<Integer> nums;
//precondition: nums.size() > 0
//nums contains Integer objects
public void numQuest() {
int k = 0;
Integer zero = new Integer(0);
while (k < nums.size()) {
if (nums.get(k).equals(zero))
nums.remove(k);
k++;
}
}

A. [3, 5, 2, 4, 0, 0, 0, 0]

B. [0, 0, 0, 0, 4, 2, 5, 3]

C. [0, 0, 4, 2, 5, 0, 3, 0]

D. [0, 4, 2, 5, 3]


原因分析:

结果中数组的第一个元素 0 是 原数组中的第二个0。
这个程序就是在删除数组中的0 ,但是会有个小问题,就是连续的0会只删除一个。
原因:当执行remove的时候,ArrayList 数组的 size 会变小一个,原本的位置上的 0 会被后面的 0 给替代;而在执行完remove后执行了k++;所以跳过了第二个0

答案: D


错题2描述:

抽象类方法的访问权限默认都是public。( )

A. 正确

B. 错误


原因分析:

关于抽象类
JDK 1.8以前,抽象类的方法默认访问权限为protected
JDK 1.8时,抽象类的方法默认访问权限变为default

关于接口
JDK 1.8以前,接口中的方法必须是public的
JDK 1.8时,接口中的方法可以是public的,也可以是default的
JDK 1.9时,接口中的方法可以是private的

答案:B


错题3描述:

关于Java语言描述正确的是? ( )

A. java和C++都保留了指针

B. java和C++都有三个特征:封装、继承和多态

C. java的垃圾回收机制是指程序结束时系统自动回收内存

D. 以上说法都不正确


原因分析:

现在懂了,java和C++都有三个特征:封装、继承和多态

答案:B


错题4描述:

以下代码执行的结果显示是多少()?

在这里插入图片描述

A. num * count = 505000

B. num * count = 0

C. 运行时错误

D. num * count = 5050


原因分析:

看错了,以为是count+=i ,没想到是count+=count一直是0

答案:B


错题5描述:

关于volatile关键字,下列描述不正确的是?

A. 用volatile修饰的变量,每次更新对其他线程都是立即可见的。

B. 对volatile变量的操作是原子性的。

C. 对volatile变量的操作不会造成阻塞。

D. 不依赖其他锁机制,多线程环境下的计数器可用volatile实现。


原因分析:

错了n遍,受不了
对volatile变量的操作是原子性的(×)
不依赖其他锁机制,多线程环境下的计数器可用volatile实现。(×)

答案:B D


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

关于我成为程序员这档事

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

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

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

打赏作者

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

抵扣说明:

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

余额充值