理想汽车-面试题

一面

1.SQL索引优化有哪些?

  • 最左前缀
  • 联合索引
  • 索引下推优化

2.InnoDB数据页大小,一页可以放多少数据?

16k

bigint类型可以放千万级别

3.varchar类型建索引,可以设置的最大长度是多少?

768

4.B-树和B+树的区别?为什么InnoDB索引使用B+树?

是否只在叶子结点存储数据

B+树优化磁盘IO和范围查询

5.项目中流程配置是什么样的?

6.分布式锁使用什么?为什么用lua脚本?为什么setnx不用lua?setnx从什么版本支持原子操作的?

setnx + lua

解锁操作不是一个原子指令,涉及到get、equals、del

setnx在2.6.12版本之后,官方支持原子操作,可以set key value nx ex

7.zookeeper分布式锁是如何实现的?

创建一个临时有序节点,并监听上一个节点的状态

8.线程池中,线程数到达最大线程数怎么办?

配置拒绝策略

9.orgagent线程隔离为什么不用hystrix?

10.MQ中间件了解哪些?

二面

1.RabbitMQ都有哪些组件?

2.公司内部RPC框架有哪些设计的优秀的地方?

3.Netty的线程模型在源码中是如何控制的?

4.介绍下GC的分代回收以及什么情况下对象进入老年代?

5.redis的数据结构及其对应的基本数据结构?

6.事务隔离级别?事务传播机制?

7.聚簇索引是什么?

8.说一些工作中用到的设计模式

9.spring源码看过哪些?

10.CountDownLatch的原理?

三面

1.ElasticSearch的索引的原理?

2.ElsaticSearch的数据写入流程?

3.说下整体的业务流程?

4.流程配置是怎么用的?

5.线程池隔离的具体方案(代码怎么写的)?

6.动态代理都有哪些类型?性能有何区别?