2021 年版,拼多多 / 阿里 / 今日头条 / 京东 Java 面经大合集(含答案)
很多 Java 开发者面试之前,可能没有较长的工作时间或者较为丰富的工作经验,所以不知道互联网公司或者一线互联网公司技术面试都会问哪一些问题。 再加上可能自己准备也不充分,去面试没几个回合就被面试官几个问题打蒙了,最后以惨败收场。 针对这些,收集并整理了一些知名大厂的面经,在这里分享给大家参考,使即将面试或是有想法跳槽的读者朋友们了解一下一线大厂面试的时候都喜欢问哪一些问题~
接下来我们开始切入正题吧~
拼多多(三面)
一面
1.简短自我介绍。
2.SpringBoot 配置途径?
3.application.properties 和 application.yml 文件可放位置?优先级?
4.SpringBoot 自动配置原理?
5.SpringBoot 如何修改端口号?
6.开启 SpringBoot 特性的几种方式?
7.获得 Bean 装配报告信息访问哪个端点?
8.描述下线程池的处理流程?
9.如何激活某个环境的配置?
10.SpringBoot 读取配置相关注解有?
11.SpringBoot 如何修改端口号?
二面
1.请描述 Spring MVC 的工作流程?
2.描述一下 DispatcherServlet 的工作流程?
3.MVC 是什么?MVC 设计模式的好处有哪些?
4.SpingMvc 中的控制器的注解一般用哪个,有没有别的注解可以替代?
5.@Controller 注解的作用。
6.@ResponseBody 注解的作用。
7.Spring MVC 怎么样设定重定向和转发的?
8.Spring MVC 怎么和 AJAX 相互调用的?
三面
1.详解 JVM 内存模型。
2.JVM 内存为什么要分成新生代,老年代,持久代。新生代中为什么要分为 Eden 和 Survivor。
3.为什么要分为 Eden 和 Survivor?为什么要设置两个 Survivor 区?
4.JVM 中一次完整的 GC 流程是怎样的,对象如何晋升到老年代。
5.JVM 内存模型的相关知识了解多少,比如重排序,内存屏障,happen-before,主内存,工作内存。
6.最后谈谈你参与过的项目,技术含量比较高的,相关的架构设计以及你负责哪些核心编码。
阿里(三面)
MySQL+Redis+消息中间件+Zookeeper+微服务
一面
1.MyISAM 和 InnoDB**的区别有哪些?
2.MySQL 事务的隔离级别, 分别有什么特点?
3.做过哪些 MySQL 索引相关优化。
4.简要说一下数据库范式。
5.一千万条数据的表, 如何分页查询?
6.订单表数据量越来越大导致查询缓慢, 如何处理?
7.MySQL 由哪些部分组成, 分别用来做什么?
8.MySQL 查询缓存有什么弊端, 应该什么情况下使用, 8.0 版本对查询缓存有什么变更?
9.唯一索引比普通索引快吗, 为什么?
10.MySQL 怎么恢复半个月前的数据
二面
1.Redis 相比 memcached 有哪些优势?
2.Redis 支持哪几种数据类型?
3.Redis 有哪几种数据淘汰策略?
4.为什么 Redis 需要把所有数据放到内存中?
5.Redis 集群方案应该怎么做?都有哪些方案?
6.Redis 集群方案什么情况下会导致整个集群不可用?
7.Redis 有哪些适合的场景?
8.Redis 和 Redisson 有什么关系?
9.Jedis 与 Redisson 对比有什么优缺点?
三面
1.自我介绍
2.参与的并发项目,从设计到部署,按照流程讲一遍。
3.数据库主从同步如何实现,事务如何实现?
4.阿里系中间件 metaQ 及原理与现有的 kafka 有什么异同?
5.在阿里有了解过什么中间件吗?实现原理?与其他开源消息队列有什么特点?
6.Znode 有哪些类型?
7.Zookeeper 有哪几种几种部署模式?
8.Zookeeper 对节点的 watch 监听通知是永久的吗?为什么不是永久的?
9.Zookeeper 下 Server 工作状态有哪些?
10.谈谈你对 SOA 和微服务的理解,以及分布式架构从应用层面涉及到的调整和挑战。
11.三年到五年的职业规划?有什么想问我的?
今日头条(三面)
一面(50 分钟)
Linux 的基本组件是什么?
为什么 Linux 体系结构要分为用户空间和内核空间的原因?
BASH 和 DOS 之间的基本区别是什么?
Linux 有哪些系统日志文件?
Java GC 机制?GC Roots 有哪些?
红黑树讲一下,五个特性,插入删除操作,时间复杂度?
hashmap,怎么扩容,怎么处理数据冲突?怎么高效率的实现数据迁移?
二面(40 分钟)
1.自我介绍,讲一讲自己的擅长领域。 2.redis 数据结构解释一下。 3.对设计模式了解多少? 4.设计模式里的三种代理的区别是什么? 5.什么情况下用 HashMap,什么情况用 ConcurrentHashMap? 6.为什么 Java8 并发效率更好?
三面(约 1 个小时)
1.MySQL 索引的实现,innodb 的索引,b+树索引是怎么实现的,为什么用 b+树做索引节点,一个节点存了多少数据,怎么规定大小,与磁盘页对应。
2.如果 Redis 有 1 亿个 key,使用 keys 命令是否会影响线上服务?
3.建造者模式通常包括几个角色?
4.代码实现模板方法模式说一下。
5.MySQL 数据主从同步是如何实现的?
6.未来的规划是什么?
7.你有什么想问我吗?
京东(三面)
Spring Cloud+秒杀+Redis
一面
1.简短的自我介绍。
2.jdk1.8 中,对 hashMap 和 concurrentHashMap 做了哪些优化?
3.synchronized 和 ReentranLock 的区别?
4.ThreadLocal?应用场景?
5.MySQL 行锁是否会有死锁的情况?
6.事务的 ACID,其中把事务的隔离性详细解释一遍。
7.ThreadLocal?应用场景?
8.ArrayList 和 LinkedList 的区别是什么?
9.说一下 HashMap 的实现原理?
10.说道红黑树先讲什么是二叉树?
二面
1.谈谈 Redis 哨兵、复制、集群?
2.Redis 是单线程吗?
3.Linux 的基本组件是什么?
4.Linux 使用的进程间通信方式?
5.什么是正向代理和反向代理?
6.Nginx 配置文件 nginx.conf 有哪些属性模块?
7.如何用 Nginx 解决前端跨域问题?
8.工作中技术优化过哪些?
三面
1.Spring 由哪些模块组成?
2.Spring 框架中都用到了哪些设计模式?
3.详细讲解一下核心容器(spring context 应用上下文) 模块.
4.Spring 应用程序有哪些不同组件?
5.高并发的应用场景,技术需要涉及到哪些?怎样来架构设计?
6.最后谈谈你参与过的项目,技术含量比较高的,相关的架构设计以及你负责哪些核心编码。
最后:
针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。
全部面试题都是含有答案的,文章篇幅有限,只能为大家展示面试题部分,需要领取完整版可以点赞此文后 点击此处 凭截图免费获取
评论