袁艺

个人站

欢迎来到我的个人站~


光大银行信息科技部-面经

初面

全程一共20分钟左右,四个面试官,一位负责引导流程,一位负责提问工程技术、另一位面试官询问一些现状,比如:为什么想离职、现在住在哪里等等,整体的节奏比较快,面试难度一颗星

自我介绍

这里就不详细介绍了

项目中提到的多任务高并发是如何实现的

项目中的任务推进是什么意思,详细介绍一下

线程池是怎么实现的?有哪些参数?

参数介绍:

  • corePoolSize 核心线程池大小
  • maximumPoolSize 最大线程池大小
  • keepAliveTime 线程池中超过 corePoolSize 数目的空闲线程最大存活时间;
  • TimeUnit keepAliveTime 时间单位
  • workQueue 阻塞任务队列
  • threadFactory 新建线程工厂
  • RejectedExecutionHandler 拒绝策略。当提交任务数超过 maxmumPoolSize+workQueue 之和时,任务会交给RejectedExecutionHandler 来处理

阻塞队列是做什么的

  • 当线程池小于corePoolSize,新提交任务将创建一个新线程执行任务,即使此时线程池中存在空闲线程。
  • 当线程池达到corePoolSize时,新提交任务将被放入 workQueue 中,等待线程池中任务调度执行。
  • 当workQueue已满,且 maximumPoolSize 大于 corePoolSize 时,新提交任务会创建新线程执行任务。
  • 当提交任务数超过 maximumPoolSize 时,新提交任务由 RejectedExecutionHandler 处理。
  • 当线程池中超过corePoolSize 线程,空闲时间达到 keepAliveTime 时,关闭空闲线程 。

看你项目用了redis,主要是用来做什么的

redis如果存储的数据丢失了或者查不到,代码逻辑应该怎么处理

多级缓存兜底

项目中用到了mq,是如何用mq解耦的

mq的消息模型有哪些?

  • 发布订阅 消息生产者向频道发送一个消息之后,多个消费者可以从该频道订阅到这条消息并消费 发布订阅
  • 点对点 消息生产者向消息队列中发送了一个消息之后,只能被一个消费者消费一次。 点对点

发布与订阅模式和观察者模式有以下不同:

观察者模式中,观察者和主题都知道对方的存在;而在发布与订阅模式中,生产者与消费者不知道对方的存在,它们之间通过频道进行通信。 观察者模式是同步的,当事件触发时,主题会调用观察者的方法,然后等待方法返回;而发布与订阅模式是异步的,生产者向频道发送一个消息之后,就不需要关心消费者何时去订阅这个消息,可以立即返回。

区别

剩下的就是一些生活和工作上的问题了