前言

最近经常有小伙伴,问我面试相关的问题。尤其是近期正在找工作的小伙伴,希望我能够分享一些大厂的面试题,让他们面试前有个参考,不打无准备之仗。今天有个好消息是,我整理了一份微信、VIVO和货拉拉的真实面试题,其中涉及的知识点很有代表性,非常有参考价值。想进大厂的小伙伴,赶紧看过来,这是一份开卷考试,你准备好了吗?

微信支付1面

  1. http1.0、http2.0、http3.0的区别?
  2. http是如何采用UDP的?
  3. http3.0为什么采用UDP?
  4. TCP怎么保证可靠性的 (TCP拥塞控制讲一讲)
  5. TimeWait状态知道吗? 怎么造成的? 怎么避免和解决?
  6. JAVA的AOP怎么实现的?
  7. 多态的原理是什么?
  8. WEB安全谈一下
  9. 一个接口的性能要提升怎么做?
  10. 索引讲一下,为什么不能用红黑树?
  11. 红黑树应用场景有哪些?
  • 我答的epoll里面, hashmap里面, linux的进程调用3个地方。
  1. 什么时候分库?什么时候分表? 有什么区别? 读写分离 主要解决的什么?
  2. redis除了缓存还能拿来干什么?(我答锁..忘记说bitmap了…)
  3. redis的主从复制原理,两个机制是什么? 半同步机制,你详细讲一下。
  4. redis故障转移过程细节说一下
  5. 聊聊缓存击穿、穿透、雪崩的区别
  6. 一致性hash原理是什么?
  7. redis有哪些数据类型? 底层实现是什么?
  8. 跳表到底是一个什么样的数据结构? 你解释下干什么用?有什么好处?
  9. 看了哪些书?
  10. 一个线程的生命周期的过程中,能不能换到不同的CPU核心上执行?
  11. 操作系统的调度算法知道吗?
  12. cpu执行高位和低位的过程 (题目没听懂..不明白什么玩意)
  13. redis为什么那么快?
  14. https是什么? 有什么用? 怎么实现的?
  15. 你说下https加密的过程
  16. 为什么既要非对称加密又要对称加密?
  17. 你们消息队列用的什么? 为什么用kafka? 其他几个不行吗? 怎么选型的?
  18. mysql主从同步延时怎么解决?
  19. 你们mysql怎么保证的数据不丢失 比如机房地震
  20. http状态码301和403代表什么含义?
  21. sql注入是什么? 怎么避免? 原理是什么?
  22. 类设计的5个原则
  23. hash冲突有哪些解决方案?
  24. 如果项目要做升级,要考虑哪些方面?
  25. 缓存与数据一致性,假设先操作数据库后写缓存, 两者都成功的情况下还存在什么问题吗?

VIVO-2面

  1. 线上jvm环境, 哪个命令可以查到每个类有多少个?占用多大?
  2. dump文件用mat工具分析的时候,排在前面占用最多的不是自定义类, 而是jdk自带的常用来,比如java.lang.string, 该怎么办?
  3. ReentrenLock能不能替代Synchronized?
  4. 什么时候用乐观锁? 什么时候用悲观锁? 数据库的锁有哪些有了解吗?
  5. Mysql分库以后,多个库的分页排序查询怎么做?
  6. SpringCloud Alibaba 里面的nacos注册中心怎么做的高可用?
  7. Redis集群为什么选Redis Cluster,而不选代理+哨兵+主从,选型的时候怎么考虑的?
  8. G1收集器说一说,然后他的缺点是什么?什么时候选CMS什么时候选G1?
  9. 分布式事务怎么搞的,有没有落地?怎么落地的?具体方案是什么?
  10. 线上一共有多少服务? 服务直接调用链路说一说, 多少台机器? QPS有多少? 有没有压测? 怎么做的?
  11. 有没有做自动化测试?怎么做的?

货拉拉2面

  1. 聊聊间隙锁怎么样最低降低间隙锁的范围?因为间隙锁太大可能会导致死锁,虽然不能完全避免, 那怎么尽最大力度避免?
  2. 什么时候用索引比不用索引慢? 哪些场景?
  3. mysql执行计划出来了以后,那你说下你的调优思路, 除了索引之外, 说其他的思路? 哪些方面? 怎么看? 怎么弄?
  4. 那怎么在不改变sql语句的情况下,如果改变你sql的执行计划?
  5. 项目中遇到jvm内存泄露或者cpu机器飙高没? 怎么解决的?
  6. jvm调优总体说一下思路。
  7. 除了mat这些可视化的工具, 你还用什么其他的调优工具没? 除了那些原始的jdk命令
  8. 你们用的G1,为什么不用CMS+PN?
  9. 说说对象的分配,那有了栈上分配 还搞一个TLAB?两者什么区别 栈不就是在线程里吗 又搞一个线程本地buffer?
  10. kafka多线程消费: 假设总共有10条数据,其中2条数据 有问题,8条数据成功了, 你怎么处理?
  11. 设计模式你们在项目中怎么用的? 除了单例和工厂模式 这两个不谈, 说其他的结合你的项目说。
  12. redis中热key你怎么处理?单节点可能爆,打到多个节点?怎么打? 前面怎么查? 我这是一个key哦?说说
  13. redis分布式锁和zk分布式锁怎么选型的?项目中用到了没有?
  14. 那你说说用redlock的分布式锁有什么问题没?如果5个节点, abcde中abc加了锁, 万一a宕机了, 另外一个机器还能不能拿到分布式锁?为什么?
  15. 你们用的redis cluster?为什么不用代理+哨兵, 为什么选型redis cluster?
  16. 为什么用kafka? 不用rocketmq 或者rabbitmq? 怎么选型的?
  17. 数据库和redis双写保证一致性? 有没有什么问题? 怎么解决?
  18. 降低数据库的压力你可以搞读写分离, 加从节点啊, 为什么直接上redis?
  19. 缓存并发竞争有没有在项目中遇到过?怎么解决的?
  20. 分布式事务用的哪一种? 为什么?优点和缺点是什么?
  21. 消息队列满了怎么办?你用kafka怎么消息的幂等?怎么保证消息不丢?
  22. 你说kafka你设置ack-1, 为什么是-1? -1的时候存在什么问题? 怎么解决?