Java面试题

1.开闭原则相关的面向对象设计原则()多选题哦
A、里氏代换原则(Liskov Substitution Principle LSP)
B、依赖倒转原则(Dependence Inversion Principle)
C、接口隔离原则(Interface Segregation Principle)
D、复用原则


正确答案: A B C
面向对象共有六大原则:开闭原则、单一职责原则、里式替换原则、依赖倒置原则、接口隔离原则、迪米特法则。
开闭原则:开闭原则的定义是软件中的对象(类,模块,函数等)应该对于扩展是开放的,但是对于修改是关闭的。
单一职责原则:就一个类而言,应该仅有一个引起他变化的原因。也就是说一个类应该只负责一件事情。
里式替换原则:“子类能够替换基类,否则不应当设计为其子类。”也就是说,子类只能去扩展基类,而不是隐藏或覆盖基类。
依赖倒置原则:模块间的依赖是通过抽象来发生的,实现类之间不发生直接的依赖关系,其依赖关系是通过接口是来实现的。
接口隔离原则:客户端不应该依赖他不需要的接口。
迪米特法则:一个对象应该对其他对象保持最小的了解。

2.以下选项中哪些是使用消息中间件后带来的问题(缺点)?
A.应用解耦
B.增加系统的复杂性
C.消息处理异步
D.消息不一致

答案B,D

答案解析:
加入消息中间件后,增加了模块,并且消息中间件的可用和稳定性都需要维护,所以提高了了系统的复杂度。
如果当消费者成功从消息中间件中接收到消息,但是在消息的处理过程中出现了异常,则会出现数据丢失,从而导致了消息不一致。

如果一个list初始化为{5,3,1},执行以下代码后,其结果为()?
nums.add(6);
nums.add(0,4);
nums.remove(1);
A、 [5, 3, 1, 6]
B、 [4, 3, 1, 6]
C、 [4, 3, 6]
D、 [5, 3, 6]
正确答案:B
答案解析:初始化为{5,3,1}
nums.add(6)后list为{5,3,1,6}
nums.add(0,4)是在0号索引上添加数字4得到list为{4,5,3,1,6}
nums.remove(1)是将1号索引上的5进行remove得到list为{4,3,1,6}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值