首页 > 【面经】 Java 社招 2 年
头像
浅前
编辑于 2020-09-21 14:52
+ 关注

【面经】 Java 社招 2 年

背景:硕 2 年 Java 开发

之前面试看了不少牛客的面经,这里记录了最近面试的一些问题,回馈下社区。
(不是全部的面试,只记录了部分)

亚马逊二面

  1. 项目介绍
  2. 算法题:平衡二叉树
  3. 算法题:三角形最小路径(下一层长度大于等于上一层长度)

亚马逊一面

  1. 项目介绍
  2. 设计 TinyURL

快手商业化二面

  1. 设计一个定时触发的生产者消费者
  2. 给定 log 日志,每行代表用户进入的开始时间和离开时间。统计当天最高的同时在线人数。
  3. 给定 list,表示 id,可能重复。要求用 stream 实现 list -> map 的转换,map 统计 id 出现的次数。
  4. shutdown 和 shutdownNow 的区别
  5. 什么状态的线程可以中断

网易有道二面

  1. 部门介绍
  2. 系统设计题:假设有 10-100 万的词条。每天定时更新。要求系统高可用,更新完成时间尽量快。
  3. 系统设计题:假设客户端有一个大文件与服务端同步。已知文件中某处被修改,请设计一个算法更新被修改的部分。

反问:网易的培养体系
一般性培养:

  • 技术上独当一面的能力
  • 软技能:对结果负责
    再进一步:
  • 结合个人意愿,提高技术影响力
  • 发挥大于 1 的价值

快手一面

  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. 算法题:旋转有序数组的最小值(含重复元素)

京东基础架构三面(8.17)

  1. 简单介绍下 RabbitMQ
  2. RabbitMQ 如何保证消息一致性的
  3. 开启 ACK 后的具体流程是怎样的
  4. RabbitMQ 如何保证高可用的
  5. RabbitMQ 集群模式下主宕机了如何选主
  6. 线上机器 CPU 突然增高如何处理
  7. 接口不定时出现高时延如何处理
  8. 处理过哪种线上问题
  9. 如何加速计算 1+2...+100

京东基础架构二面

  1. 项目介绍(责任链模式和数据一致性)
  2. 算法题:在一场活动中,已知参加活动的人数先缓慢增加,达到峰值后再逐渐减少,求峰值
  3. 算法题:假设有一个接口,QPS 在万级别,每次访问均统计了时延,求时延的 TP99
  4. 为什么选择消息中间件组
  5. 介绍下 Redis
  6. 实习或之前还做过什么项目

BIGO 三面

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

京东物流二面

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

网易有道一面

  • 如果因为 MQ 引起的发送失败,怎么处理?
  • 消息队列和 HTTP 调用的区别是什么?
  • 如果 HTTP 调用也失败了怎么办?
  • 消息队列消息堆积了几个小时数据怎么处理?
  • 为什么不直接扩展消费端呢?而是引入新的消息队列?
  • MQ 有哪些应用场景?这里主要用来解决什么问题呢?
  • 网关选型 Zuul 和 Spring Cloud Gateway
  • Eureka 服务发现的原理
  • 服务发现选型应该要考虑的因素有哪些?
  • MySQL 性能优化指什么?
  • MySQL 优化的经验或知识?
  • 为什么使用索引可以加速查询?
  • 为什么 B+ 树和 IO 次数有关系?
  • 除了我以上问的,其他觉得有擅长但是没有问到的吗?
  • Spring IOC 原理
  • Spring 如何解决循环依赖的问题
  • 比较熟悉的数据结构有哪些?
  • 算法题:判断一个链表是否有环
  • 系统设计题:准备一批文本,收集用户的录音。用户获取待读文本,然后提交。要求每个文本只能被读一次,以及统计每个用户读了多少条。

建议:了解用到技术的原理

小马智行一面

算法题:

数据流的中位数,要求提供 add、delete、getMedian 三个接口。

BIGO 二面

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

反问:

  • 北京负责的业务?直播业务线、视频业务线、社交软件业务线
  • 全球产品与国内的区别?运营形态不一样,文化宗教冲突,跨区服务器

BIGO 一面

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

美团基础架构二面

  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. 栈具体在做什么事情?
  4. 介绍java的线程池的原理和调度机制
  5. 介绍线程池的拒绝策略
  6. 如何释放线程池中的线程
  7. 核心线程数如何释放,可以通过线程空闲时间来控制释放吗?
  8. shutdown, shutdown now 的区别?
  9. 常用的锁有哪些?
  10. synchronized 和 ReentrantLock 的区别?他们需要手动的释放吗?
  11. 介绍一下乐观锁,缺点是什么?如何保证原子性?
  12. 常用的垃圾回收算法有哪些?
  13. 描述新生代的回收过程,EMCC的回收过程?
  14. 怎么确定对象是否应该被释放?
  15. 描述NIO的概念
  16. 内核态IO的复用的机制?
  17. TCP 如何保证可靠性的?
  18. HashMap 是如何实现的?
  19. ConcurrentHashMap 是如何实现的?
  20. kafka的基本原理和架构?
  21. 不同的 partition 之间如何容灾备份?
  22. 同步时 high water
  23. RabbitMQ 如何实现容灾?
  24. RabbitMQ 发生脑裂怎么处理?
  25. 项目中遇到的难点是什么?如果解决的?
  26. 付款过程中的一致性怎么保证的?

滴滴二面

  1. JVM 分配内存的过程
  2. TLAB 的工作机制
  3. TLS
  4. CMS 并发收集,如何记录未收集的表
  5. 算法题:合并 K 个链表
  6. 算法题:火车排队
  7. 概率题:圆上任意两个弦相交的概率
  8. MySQL 平滑迁库
  9. MySQL 索引
  10. MySQL 如何建索引

滴滴一面

百度 ACG AI商业平台部一面

  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. 研究生阶段研究课题是什么?
  2. 责任链模式,更新的时候有并发怎么办?
  3. 责任链模式的动态配置时如何修改的?
  4. RabbitMQ 发送失败怎么办?
  5. 消息主键 ID 是一样的,如何去重?
  6. RabbitMQ 发送重复怎么处理?
  7. Zookeeper 主要使用什么功能?
  8. Zookeeper 怎么实现命名服务?
  9. Zookeeper 怎么实现分布式锁?
  10. Zookeeper 选主过程
  11. Zookeeper 是如何避免或处理脑裂的?
  12. 线上 RabbitMQ 积压如何处理?
  13. 怎么保证数据一致性的?
  14. Zookeeper 挂了怎么办?
  15. MySQL 查询慢怎么优化?
  16. 什么情况下需要加索引?
  17. 什么情况下不需要加索引?
  18. 什么情况下索引不生效?
  19. binlog 是什么?
  20. Redis 的数据类型有哪些?除了常用的还有什么吗?
  21. Redis 的持久化机制
  22. Redis 的哨兵机制,与 Redis 集群有什么区别
  23. HashMap 的插入一条数据的过程
  24. HashMap 分别初始化大小 1k 和 10k,分别放 1k 和 10k 的数据,都会触发扩容吗?
  25. ConcurrentHashMap 的实现方式,跟 HashTable 有什么区别?
  26. 线程池的参数和每个参数的含义
  27. 线程池的工作队列有哪些?如何选择?
  28. RPC 框架有用过吗?
  29. 有哪几种垃圾回收器?CMS 和 G1 的区别?
  30. CMS 的优点有哪些?G1 的优点有哪些?
  31. 方法区的作用
  32. JVM 编译优化有哪些
  33. synchronized 和 volatile 的区别
  34. synchronized 和 ReentrantLock 的区别
  35. 常用的设计模式
  36. JDK 有用到哪些设计模式
  37. 算法题:1-n 数中找第 k 大的数字。follow up:数据流中取第 k 大呢?

京东物流一面

  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. 消息队列选型,用 RabbitMQ 为什么不是 Kafka?(没答好)
  5. 什么时候出现数据不一致的情况?
  6. 为什么选择本地消息法做分布式事务?
  7. 什么是TCC,它的工作过程?
  8. TCC 和 XA 的区别?
  9. 如果让你优化XA,你会如何优化?
  10. 你如何理解高可用性?
  11. 假设RabbitMQ宕机了,怎么保证服务仍然可用?
  12. 你们是如何做服务监控的?高可用级别?几个9?
  13. skywalking 的监控原理
  14. 为什么用微服务架构?有什么优点?
  15. 拆分服务模块是如何考量的?
  16. MySQL 的事务隔离级别?为什么选择这个隔离级别?什么是幻读?
  17. MySQL 是如何实现事务的四大特性的?
  18. 简单说下 MVCC 的工作原理。
  19. synchronized 和 ReentrantLock
  20. 为什么使用 ReentrantLock 而不是 synchronized?
  21. synchronized 和 ReentrantLock 性能上的差别?
  22. 锁升级机制?轻量级锁自旋的过程?
  23. CAS 还需要获取锁吗?
  24. 写个单例模式,选一种你觉得最合适的。(静态内部类和懒汉模式)
  25. 为什么用静态内部类?
  26. 为什么要加在实例前 volatile 关键字?
  27. 服务发现为什么用 Eureka?还有哪些实现方案?如何选型?
  28. SpringBoot 的优势在哪?有哪些功能?
  29. IOC 和 AOP 简单解释一下
  30. AOP 的实现原理?动态代理是如何实现的?

更多模拟面试

全部评论

(16) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐