美文网首页
java后端面试的三个问题总结(1)

java后端面试的三个问题总结(1)

作者: Bury丶冬天 | 来源:发表于2020-06-08 10:12 被阅读0次
    • git分支你们是怎么管理的?
    1. 设立保护分支 通常也就是发布分支(一般是master分支);
    2. 所有开发者建立自己dev分支进行开发
    3. 需求开发完成后 首先基于 master 分支进行 rebase 操作
    4. 然后提交合并请求
    5. 有权限的人对代码进行review 代码等通过规范后合并到主分支
    • 什么是幂等性?接口如何保证幂等性?参考
      幂等性概念:对于同一个方法或API接口等,参数不变的时候,调用一次和调用多次对系统的状态产生一样的影响.
    1. 查询操作 数据库 select 操作天然是幂等性的
    2. 删除操作,调用一次和多次都是将指定的数据删除(可能返回的数据不一样,删除的数据不存在,返回0,删除的数据多条,返回结果多个)
    3. 数据库建立唯一索引,例如主键,唯一键,对数据操作的时候使用唯一索引作为条件
    4. 使用token机制
    5. 悲观锁(注意建立索引,通过索引字段操作,否则可能会导致全表加锁)
    6. 乐观锁
    7. 分布式系统中使用分布式锁对资源加锁,(分布式锁一般使用redis的setnx指令完成,setnx指令存在缺陷,set(key,1,30,NX))
    8. 对外接口如微信支付等接口通过 prepayid 唯一确定支付订单,防止同一订单多次支付的情况.
    • @Transaction 控制事物不生效的场景参考
    1. 数据库引擎不支持事务,数据库底层不支持事务,则注解无能为力
    2. 数据源没有配置事务管理器(如:Springboot中没有配置@EnableTransactionManagement)
    3. 方法不是public
    4. @Transactional 注解属性 propagation 设置错误(使用了 NOT_SUPPORTED)
    5. 同一个类中 一个方法调用了加了@Transactional注解的方法,此时事务失效
    6. 方法中的异常没有抛出来,被try catch吃了
    7. @Transactional 注解属性 rollbackFor 设置 监视的异常类型匹配不上

    相关文章

      网友评论

          本文标题:java后端面试的三个问题总结(1)

          本文链接:https://www.haomeiwen.com/subject/hqiazhtx.html