【面试】软通动力外包华为智能汽车

多线程了解过么?项目中哪里使用到了多线程?

了解过。例如消息中心批量发送邮件,数据库中数据导入到ES中等等

线程池中临时(救急)线程工作原理?

线程池中有核心线程数、最大线程数、工作队列这几个概念,最大线程数 = 核心线程数 + 临时线程数。如果说来个几个线程已经占满了核心线程,那么之后来的线程就会进入到工作队列中去。如果说之后来的线程也把工作队列占满了,那么就会启用临时线程来进行处理操作了。

Redis用过么?使用场景是什么?

使用过,分布式锁和缓存

缓存击穿如何如何处理?

击穿就是缓存中没数据,数据库中有数据,导致大量请求打到数据库,造成压力过大
解决方案:设置热点数据永不过期;加互斥锁,让第一个线程进来,后面等待,第一个出来后,其他线程去缓存中读

Redis分布式锁实现原理?

基于setnx命令来实现的。redis实现分布式锁我们通过redisson来实现,redisson做了很多的增强和优化。

redisson也是首先去加锁,如果加锁成功的话,会另开一个线程进行监控持有锁的线程,进行续期,就是看门狗机制。如果释放锁的话,我们手动来释放,通知看门狗无需监听。

如果说获取锁失败了,那么还有重试机制,会不断进行循环获取锁。

消息中间件用了么?介绍一下RabbitMQ的工作原理?

先大概介绍一下结构:RabbitMQ分为生产者、消费者、信道(channel),broker,虚拟机,交换机,队列几个部分。

生产者发送消息通过信道发送到交换机上,交换机在通过一定规则发送给队列,然后消费者去对应队列中去获取消费即可。交换机分为很多种,按照不同规则发送到不同队列

Spring中的IOC和AOP用过么?

使用过,用自己理解介绍

AOP使用场景说一下?

最常用的就是自定义log注解,记录接口日志

接口的性能优化是否遇到过?

其实我们经常用到过,但是脑子短路,我说没有…

  1. 数据量比较大,批量操作数据入库
  2. 耗时操作考虑异步处理(比如发送邮件)
  3. 恰当使用缓存
  4. 优化程序逻辑、代码(比如提前return、减少不必要校验参数…)
  5. 优化SQL语句
  6. 远程调用串行改为并行
MySQL这块性能优化讲一下?

可以借助explain帮助我们参考优化点

表的设计优化

索引优化:索引列不要参与计算、不要违反最左匹配原则、范围查询右边的索引会失效、字符串查询要用单引号、模糊查询%开头索引会失效

语句优化:避免使用select *、要避免索引失效、where子句中不要进行表达式操作、join也可以优化

数据量特别大的时候要考虑分库分表

ES用过么?

没用过,用的很少,停留在会用层面

还有其他问题么?
总结

没准备好,挺突然的。以为只是简单聊聊,结果这是初轮电话面试,估计凉凉,总结继续投简历

转载请说明出处内容投诉
CSS教程_站长资源网 » 【面试】软通动力外包华为智能汽车

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买