10月最新出炉互联网大厂Java面试真题(快手,京东,滴滴,腾讯,BIGO,网易)

前言

前面文章为大家对比分析了各个大厂的面试重点都有所不同,今天为大家收集了各个互联网大厂最新的JAVA面试真题,文章末尾有面试题答案,祝大家都能升职加薪!

快手一面

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.   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 的单点问题(数据分片)

京东物流二面

•    自我介绍

•    项目介绍

•    项目难点(线上问题排查)

•    消息队列的选型

•    Spring AOP 原理和应用

•    链路追踪

•    最近在学什么技术

•    Kafka 如何做到高性能

京东物流三面

1.   简单介绍下 RabbitMQ

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

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

4.   RabbitMQ 如何保证高可用的

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

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

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

8.   处理过哪种线上问题

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

网易有道一面

•    如果因为 MQ 引起的发送失败,怎么处理?

•    消息队列和 HTTP 调用的区别是什么?

•    如果 HTTP 调用也失败了怎么办?

•    消息队列消息堆积了几个小时数据怎么处理?

•    为什么不直接扩展消费端呢?而是引入新的消息队列?

•    MQ 有哪些应用场景?这里主要用来解决什么问题呢?

•    网关选型 Zuul 和 Spring Cloud Gateway

•    Eureka 服务发现的原理

•    服务发现选型应该要考虑的因素有哪些?

•    MySQL 性能优化指什么?

•    MySQL 优化的经验或知识?

•    为什么使用索引可以加速查询?

•    为什么 B+ 树和 IO 次数有关系?

•    除了我以上问的,其他觉得有擅长但是没有问到的吗?

•    Spring IOC 原理

•    Spring 如何解决循环依赖的问题

•    比较熟悉的数据结构有哪些?

•    算法题:判断一个链表是否有环

•    系统设计题:准备一批文本,收集用户的录音。用户获取待读文本,然后提交。要求每个文本只能被读一次,以及统计每个用户读了多少条。

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

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 不存在,也需要插入。

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 三面

•    自我介绍

•    项目介绍

•    项目中遇到的技术难题有哪些(线上问题排查)

•    Spring AOP 底层实现

•    Redis 如何进行容灾

•    Redis 哨兵是怎样的一个机制

•    如何评估服务的能力?怎么压测你的服务?

•    出于什么考虑想找一份新工作

•    你希望的工作内容或工作方式?

•    算法题:0-n 中缺失的数字

•    算法题:微信红包算法

•    系统设计:每天 100 万微博的存储系统设计

•    MySQL 如何平滑扩展

美团基础架构一面

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.   做服务发现时有遇到什么问题吗?

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.   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 如何建索引

腾讯-广告后台开发工程师一面

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 的实现原理?动态代理是如何实现的?

总结

看了这么多大厂的面试题,其实发现大厂面试的重点考察对象都是:JVM,多线程,MYSQL,spring,微服务,Redis,高并发这几个知识点。所以小编小编也为大家准备了最适合大厂面试的学习资料。

资料领取:戳这里免费领取,暗号:

​​

听说点赞收藏的粉丝都面试成功了?如果本篇博客对你有帮助,请支持下博主哦!

你可能感兴趣的:(10月最新出炉互联网大厂Java面试真题(快手,京东,滴滴,腾讯,BIGO,网易))