基础面试题整理5

1.事务基本特性

  • A(原子性):要么全部成功,要么全部失败;
  • C(一致性):程序设计要与业务逻辑相匹配;
  • I(隔离性):事务之间是互不干扰的;
  • D(持久性):事务提交后数据会存储到磁盘中;

2.AOP理解

AOP:面向切面编程,体现了低耦合的特点;一般用于日志、权限等核心组件,而这些核心组件融入到业务逻辑中(每个业务逻辑都需要补充核心组件)会造成代码冗余,所以使用aop实现;通过将公共代码逻辑抽象出一个切面,然后注入到目标对象(具体业务)中;aop就是通过动态代理的方式,将需要注入切面的对象进行代理,在调用时将公共逻辑添加进去,不改变原有业务逻辑,直接对原有业务逻辑进行功能加强即可;具体可见aop日志处理 

下面简单介绍几个核心概念:

切面:有@Aspect注解,生成公共逻辑;

连接点:某个方法调用的时间点或者异常处理的时间点。一个连接点代表一个方法的执行;

通知:在切面的某个特定连接点执行的动作,常有around、after、before等;

切点:满足该切点的连接点上进行通知操作;@PointCut注解;

3.IOC理解

依赖注入

应用程序依赖IOC容器,将应用程序所用的对象注入到IOC容器中,需要时直接获取即可;

基础面试题整理5_第1张图片

没有IOC时使用new创建对象,有了IOC可以通过构造函数注入、属性注入等方式进行依赖注入;

基础面试题整理5_第2张图片

基础面试题整理5_第3张图片

控制反转

由之前的程序内部new对象,反转为IOC容器控制对象的生命周期;

4.kafka的rebalance机制

rebalance是一个协议,规定了一个消费组下的消费者如何分配topic的分区

触发rebalance机制的条件:

  • 消费者成员个数发生变化(新增消费者加入到消费组中或离开消费组)
  • 订阅的topic个数发生变化
  • 订阅的topic的分区发生变化

消费者分区策略:

  • Range 范围分区(默认)
  • RoundRobin 轮询分区
  • Sticky策略

kafka其他知识点待补充!!!

你可能感兴趣的:(面试专用,java)