2021-09-03错题

这篇博客探讨了Java编程中的关键概念,包括HashMap解决哈希冲突的方法(链地址法及Java 8的平衡树优化)、面向对象的多态性(同类型对象对同一消息的不同响应)、单例模式的实现要点(构造函数私有与唯一实例)以及编程中的常见错误,如类型转换和线程锁的释放。内容涵盖了Java基础、设计模式和并发处理。
摘要由CSDN通过智能技术生成

场景:

在练习


错题

错题1描述:

在Java中,HashMap中是用哪些方法来解决哈希冲突的?

A.开放地址法

B.二次哈希法

C.链地址法

D.建立一个公共溢出区

原因分析:

以上方法都是解决哈希填冲突的策略,但是在java.util.HashMap中,总体来说是使用的链地址法来解决冲突的。
当然了,使用链地址***导致get的效率从o(1)降至o(n),所以在Java8中,使用的是平衡树来解决提高效率的。

答案:C


错题2描述:

面向对象方法的多态性是指()

A.一个类可以派生出多个特殊类

B.一个对象在不同的运行环境中可以有不同的变体

C.针对一消息,不同的对象可以以适合自身的方式加以响应

D.一个对象可以是由多个其他对象组合而成的
 

原因分析:

选项的确不好理解,《疯狂java讲义》的标准解释是: 相同类型的变量、调用同一个方法时呈现出多种不同的行为特征,这就是多态。

答案:C


错题3描述:

单例模式中,两个基本要点是


A.构造函数私有

B.静态工厂方法

C.以上都不对

D.唯一实例


原因分析:

在这里插入图片描述


在这里插入图片描述
答案:A D


错题4描述:

下面哪些赋值语句是正确的()

A.long test=012

B.float f=-412

C.int other =(int)true

D.double d=0x12345678

E.byte b=128


原因分析:

A和B中long和float,正常定义需要加l和f,但是long和float属于基本类型,会进行转化,所以不会报出异常。AB正确(小数不加F默认是double类型,double类型不会自动转成float类型,编译是通不过的,但将整数赋予float是可以的。)
boolean类型不能和任何类型进行转换,会报出类型异常错误。所以C错。
D选项可以这样定义,D正确。
E选项中,byte的取值范围是-128—127。报出异常: cannot convert from int to byte.所以E选项错误。

答案:A B D


错题5描述:

下列哪些操作会使线程释放锁资源?

A.sleep()

B.wait()

C.join()

D.yield()


原因分析:

1.sleep会使当前线程睡眠指定时间,不释放锁
2.yield会使当前线程重回到可执行状态,等待cpu的调度,不释放锁
3.wait会使当前线程回到线程池中等待,释放锁,当被其他线程使用notify,notifyAll唤醒时进入可执行状态
4.当前线程调用 某线程.join()时会使当前线程等待某线程执行完毕再结束,底层调用了wait,释放锁

答案:C


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

关于我成为程序员这档事

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

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

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

打赏作者

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

抵扣说明:

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

余额充值