蚂蚁金服经典技术面试题:Tomcat+Redis+线程池与锁+MQ实现

一面:技术面

1.讲一下项目

2.做的主要是Java对吧,讲一下多线程把,用到哪些写一下

3.写了thread和runnable,然后写了线程池,又问了线程池由哪些组件组成,有哪些线程池,分别怎么使用,以及拒绝策略有哪些。

4.什么时候多线程会发生死锁,写一个例子吧,然后我写了一个两个线程,两个锁,分别持有一个,请求另一个的死锁实例。

5.集合类熟悉吧,写一个题目,一个字符串集合,找出pdd并且删除。

6.然后说一下Redis吧,是单线程还是多线程,Redis的分布式怎么做?

7.RPC了解么,我说了主要是协议栈+数据格式+序列化方式,然后需要有服务注册中心管理生产者和消费者。

9.TCP三次握手的过程,如果没有第三次握手有什么问题。

二面:主要问解决问题的思路

1、如果让你实现一个MQ,怎么样保证消息不丢失?

2、硬盘io速度会变慢,有什么解决办法吗?

3、mysql的innodb索引数据结构为什么是b+树,用hash来实现可以吗?

4、分布式事务的实现?

5、如何解决redis和mysql数据一致性?

6、常见的MySQL主从同步方案有哪些?优劣势比较过?

7、先谈秒杀的设计思路?

8、再谈谈秒杀如何防止超卖?

9、你有什么想问我的?

三面

  1. 说说HaspMap底层原理?再说说它跟HaspTable和ConcurrentHashMap他们之间的相同点和不同点?
  2. 讲讲jdk1.7和1.8的区别?
  3. 几种内置的线程池
  4. MySQL事务隔离级别以及MVCC机制
  5. Redis缓存雪崩、缓存穿透以及如何解决?
  6. 分布式架构简单介绍
  7. CMS收集器和G1收集器最大的区别在哪里?
  8. 有实际的JVM性能优化经验?重点应该监控哪些指标,以及如何来调整参数?
  9. Java线程锁有使用过哪些?比如乐观锁、悲观锁类似这样使用区别?

转发+关注,然后添加VX“MXM9809”即可免费获得资料的领取方式!

全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务