最全的Java面试总结来了!阿里/京东/美团/快手/滴滴面经

前言

别人说金九银十都过去了!现在再看面经还有用吗?
子牙的回答是绝对有用的!一定要善于总结问题,面试题不光面试的时候翻出来看看,还能帮助你查漏补缺,认识自己的不足

子牙并在文章结尾为大家整理总结了金九银十的面试资料,相信一定对你有帮助

在这里插入图片描述

阿里面试总结

阿里一面

  1. 介绍下项目的大体框架
  2. 你负责哪几部分
  3. 流量 QPS 估计
  4. 网关里的限流、黑白名单这些功能是自带的还是自己实现的
  5. 有了解过 nginx 吗
  6. nginx 和 网关的关系是什么
  7. 服务发现的原理
  8. Eureka 的容灾
  9. 自我保护期间请求怎么处理
  10. 订单的数据一致性如何实现的
  11. 支付没有通知会怎么处理?
  12. 详细介绍一下本地消息表
  13. 服务是分布式多节点的,数据呢?
  14. 假设数据库分散在全国国内,如何处理请求分布到不同地点的数据库中
  15. 假设在北京下订单,但是跑到广州还款,如果就近原则的话, 连的数据库就不一样了,怎么处理?
  16. 能不能用一个策略,某个用户的数据指定到一个库去执行
  17. Java 8 CompletableFuture 的原理
  18. Future 的实现原理?Future 有哪些不好的地方
  19. 集合类型的遍历方式有哪些
  20. 集合 foreach 的 API用过吗
  21. LinkedHashMap 和 TreeMap 的区别
  22. TCP 为什么要四次挥手
  23. 假设客户端断开连接,服务器不停发数据不断开,这是允许的吗
  24. 客户端收到 FIN 后回的 ACK 丢了怎么办
  25. 为什么要等待 2 倍的 MSL 时间
  26. select、poll 和 epoll 的区别
  27. NIO 模型
  28. 简单描述下 Redis
  29. Redis 的几种常用数据结构
  30. 如何实现一个分布式的栈
  31. 算法题:给定一个整数数组 a 和一个哈希表 b,b 指定了 a 中的位置,根据 b 调整 a 的位置,如果 b 中的数字 a 不存在,也需要插入。

阿里二面

  1. 项目中做的工作包括哪些
  2. 服务治理做的相关工作
  3. Eureka 服务发现的主要功能
  4. Eureka 服务有多少个实例
  5. Eureka 服务同步每次都是全量吗
  6. Eureka 服务发现的数据一致性
  7. Eureka 如何保证数据可靠性,如何确认是一致的
  8. Eureka 如果实例数太多,会面临同步的问题吗
  9. Zuul 限流是如何实现的
  10. 限流是这一层起作用还是下一层起作用
  11. 为什么要在你这一层去做呢?那如何保护自身呢?
  12. 限流的实现方式,有哪几种算法
  13. 时间窗口与令牌桶的对比
  14. 配置管理是如何实现的
  15. 应用配置的场景
  16. 为什么选择 zk 做配置管理
  17. 为什么不用 zk 做服务注册
  18. 怎么防止雪崩、服务过载这些
  19. 网络平时有遇到什么问题吗?
  20. 服务间调用丢包、传输速度慢,怎么去解决?
  21. 如何查看连接是否丢包
  22. 大量的连接导致短暂的瘫痪状态,怎么去解决?
  23. HTTP 1.0 和 HTTP 2.0 的区别
  24. HTTP 2.0 做了哪些优化
  25. 同一个域名复用一个连接是如何实现的?
  26. Redis 在项目中用在哪里
  27. Redis 常见的数据结构
  28. Sorted Set 是如何实现的
  29. 跳表如何实现 log n 的,跳表的实现原理
  30. 为什么选择跳表来实现 Sorted Set
  31. 常见的垃圾回收算法有哪些,各自算法的优缺点
  32. 算法题:一个序列表示栈的压入顺序,判断第二个序列是否为该栈的弹出顺序
  33. follow up:输出一个序列的所有可能的弹出顺序

反问:

• 北京负责的业务?直播业务线、视频业务线、社交软件业务线

• 全球产品与国内的区别?运营形态不一样,文化宗教冲突,跨区服务器

阿里三面

  1. 项目介绍
  2. 项目中遇到的技术难题有哪些(线上问题排查)
  3. Spring AOP 底层实现
  4. Redis 如何进行容灾
  5. Redis 哨兵是怎样的一个机制
  6. 如何评估服务的能力?怎么压测你的服务?
  7. 出于什么考虑想找一份新工作
  8. 你希望的工作内容或工作方式?
  9. 算法题:0-n 中缺失的数字
  10. 算法题:微信红包算法
  11. 系统设计:每天 100 万微博的存储系统设计
  12. MySQL 如何平滑扩展

京东面试总结

京东一面

  1. 项目中用到的技术架构

  2. 数据一致性是如何保证的?

  3. Spring Bean 实例化有哪几种方式?

  4. Spring 注解这种方式如何使用?

  5. Spring 注入的方式?

  6. @Autowired 和 @Resource 区别

  7. Spring MVC 处理请求的过程,用到了什么设计模式

  8. 责任链模式和策略模式的区别

  9. Integer 的缓存范围,这是什么设计模式

  10. a == 1 为什么会报 NullPointerException

  11. 二分查找与顺序查找、树查找的比较

  12. Mybatis 二级缓存原理

  13. Redis 底层数据结构

  14. Redis String 类型的最大容量

  15. Redis 如何实现分布式锁

  16. XA 事务和 TCC 的区别

  17. 如何解决 XA/TCC 的单点问题(数据分片)

京东二面

  1. 自我介绍
  2. 项目介绍
  3. 项目难点(线上问题排查)
  4. 消息队列的选型
  5. Spring AOP 原理和应用
  6. 链路追踪
  7. 最近在学什么技术
  8. Kafka 如何做到高性能

京东三面

  1. 简单介绍下 RabbitMQ

  2. RabbitMQ 如何保证消息一致性的

  3. 开启 ACK 后的具体流程是怎样的

  4. RabbitMQ 如何保证高可用的

  5. RabbitMQ 集群模式下主宕机了如何选主

  6. 线上机器 CPU 突然增高如何处理

  7. 接口不定时出现高时延如何处理

  8. 处理过哪种线上问题

  9. 如何加速计算 1+2…+100

美团面试总结

美团一面

  1. 介绍下 JVM 堆栈模型,工作机制

  2. 哪些资源是线程私有/共有?

  3. 栈具体在做什么事情?

  4. 介绍java的线程池的原理和调度机制

  5. 介绍线程池的拒绝策略

  6. 如何释放线程池中的线程

  7. 核心线程数如何释放,可以通过线程空闲时间来控制释放吗?

  8. shutdown, shutdown now 的区别?

  1. 常用的锁有哪些?

  2. synchronized 和 ReentrantLock 的区别?他们需要手动的释放吗?

  3. 介绍一下乐观锁,缺点是什么?如何保证原子性?

  4. 常用的垃圾回收算法有哪些?

  5. 描述新生代的回收过程,EMCC的回收过程?

  6. 怎么确定对象是否应该被释放?

  7. 描述NIO的概念

  8. 内核态IO的复用的机制?

  9. TCP 如何保证可靠性的?

  10. HashMap 是如何实现的?

  11. ConcurrentHashMap 是如何实现的?

  12. kafka的基本原理和架构?

  13. 不同的 partition 之间如何容灾备份?

  14. 同步时 high water

  15. RabbitMQ 如何实现容灾?

  16. RabbitMQ 发生脑裂怎么处理?

  17. 项目中遇到的难点是什么?如果解决的?

  18. 付款过程中的一致性怎么保证的?

美团二面

  1. 做服务发现时有遇到什么问题吗?

  2. Eureka 损失了一致性会带来什么问题呢?

  3. Eureka 有主吗?怎么实现的同步?如果遇到了不一致的问题,谁说了算?

  4. 如果多个节点同时尝试注册会有问题吗?

  5. Eureka 内部采用的一致性算法是什么算法?

  6. 项目历时时间多久?

  7. 项目中遇到的技术难题是什么?

  8. 改进前使用的是什么垃圾收集器?

  9. 用了 CMS 之后配置了哪些参数?

  10. 列举常见的一致性算法?

  11. 介绍 Paxos 原理?缺点是什么?

  12. 本机宕机了怎么办?消息表会丢失的?

  13. 数据存在哪里?消息表存在磁盘或者内存还是远程的数据库?

  14. 本地消息表的缺点和优点是什么?

  15. 消息系统用的是什么组件?有消息重复的现象?

  16. jdk1.8默认的垃圾收集器是哪个?

  17. 看过jdk哪方面的源码?

  18. 常用的container有哪些?

  19. HashMap 和 HashTable的区别是什么?

  20. Spring 的原理是什么?

  21. 介绍切面的底层实现

  22. 使用 zk 的时候有遇到什么问题吗?

  23. 研究最深入的组件是哪个?有哪些看过源码?

  24. IOC 的本质是什么?

  25. Mysql 的事物隔离级别有哪几种?有什么区别?

  26. 有看过 Mysql 的源码吗?

  27. NIO 了解吗?是什么?

  28. Linux 有多少种IO模型

  29. 常用的数据结构有哪些?

  30. 二叉树里了解哪些?

  31. 平衡树是用来做什么的?

  32. B+树的特点是什么?

  33. 多线程并发的类有哪些?

  34. 信号量主要用来做什么?

  35. 编程题: 实现一个读写锁

快手面试总结

快手一面

  1. JVM 运行时区域

  2. 常见的堆内存溢出情况

  3. JVM 内存分配策略

  4. FullGC 的触发条件有哪些

  5. 锁升级的过程

  6. volatile 如何保证可见性的

  7. 分布式事务的解决方案

  8. MySQL 聚簇索引与普通索引的区别

  9. 为什么要建前缀索引

  10. B 树和 B+ 树的比较

  11. 联合索引

  12. Redis 主从复制的过程

  13. Redis 跳表的实现

  14. Redis 实现分布式锁

  15. Linux 打印文件第 10-20 行

  16. Linux 查看当前目录大小

  17. Linux 查看网络端口占用

  18. 算法题:旋转有序数组的最小值(含重复元素)

快手二面

  1. 项目介绍

  2. 为什么使用消息队列?

  3. 消息队列选型,用 RabbitMQ 为什么不是 Kafka?(没答好)

  4. 什么时候出现数据不一致的情况?

  5. 为什么选择本地消息法做分布式事务?

  6. 什么是TCC,它的工作过程?

  7. TCC 和 XA 的区别?

  8. 如果让你优化XA,你会如何优化?

  9. 你如何理解高可用性?

  10. 假设RabbitMQ宕机了,怎么保证服务仍然可用?

  11. 你们是如何做服务监控的?高可用级别?几个9?

  12. skywalking 的监控原理

  13. 为什么用微服务架构?有什么优点?

  14. 拆分服务模块是如何考量的?

  15. MySQL 的事务隔离级别?为什么选择这个隔离级别?什么是幻读?

  16. MySQL 是如何实现事务的四大特性的?

  17. 简单说下 MVCC 的工作原理。

  18. synchronized 和 ReentrantLock

  19. 为什么使用 ReentrantLock 而不是 synchronized?

  20. synchronized 和 ReentrantLock 性能上的差别?

  21. 锁升级机制?轻量级锁自旋的过程?

  22. CAS 还需要获取锁吗?

  23. 写个单例模式,选一种你觉得最合适的。(静态内部类和懒汉模式)

  24. 为什么用静态内部类?

  25. 为什么要加在实例前 volatile 关键字?

  26. 服务发现为什么用 Eureka?还有哪些实现方案?如何选型?

  27. SpringBoot 的优势在哪?有哪些功能?

  28. IOC 和 AOP 简单解释一下

  29. AOP 的实现原理?动态代理是如何实现的?

滴滴面试总结

滴滴一面

  1. API 是 RESTFul 风格的吗?设计的时候有哪些规则?用户 ID 和订单 ID 会在 url 中吗?

  2. Hadoop、Spark、Docker 技术熟悉吗?

  3. 如何查看进程 ID 内有多少线程?

  4. 查看磁盘信息 df 命令卡住了,如何排查问题?

  5. 如何查看进程所使用的系统调用?

  6. 分布式事务,两阶段提交,TCC

  7. 进程、线程、协程的区别

  8. 虚拟地址如何转到物理地址

  9. 进程中的堆区和栈区

  10. 僵尸进程

  11. HTTP Get 和 Post 的区别

  12. HTTP API 如何设计幂等接口

  13. 如何设计 HTTP 长连接

  14. http2、http3

  15. 快排的基本原理

  16. 数组和链表的区别

  17. 算法题:反转链表

  18. 算法题:求二叉树深度

  19. Redis 项目中的使用

  20. Redis 分布式锁

  21. 高并发的时候是怎么处理的?(消息队列、多线程)

  22. ORM 框架的 SQL 注入是如何解决的

  23. 事务死锁如何排查?

  24. 并发更新同一条记录如何解决事务死锁?

  25. MySQL 乐观锁和悲观锁

  26. Java 单例模式

  27. Java 原子操作

反问:

商业平台的难点:

对接存储:hadoop、对象存储 boos

大数据计算:k8s、spark,大批量数据处理

滴滴二面

  1. JVM 分配内存的过程

  2. TLAB 的工作机制

  3. TLS

  4. CMS 并发收集,如何记录未收集的表

  5. 算法题:合并 K 个链表

  6. 算法题:火车排队

  7. 概率题:圆上任意两个弦相交的概率

  8. MySQL 平滑迁库

  9. MySQL 索引

  10. MySQL 如何建索引

面试资料整理

看了这么多大厂的面试题,其实发现大厂面试的重点考察对象都是:JVM,多线程,MYSQL,spring,微服务,Redis,高并发这几个知识点。
所以子牙接下来为大家准备的面试题也是针对大厂面试的这些点:

资料领取方式:点击这里【暗号:CSDN】

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

资料领取方式:点击这里【暗号:CSDN】

在这里插入图片描述

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值