前言

很多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分钟)

  1. Linux的基本组件是什么?
  2. 为什么 Linux 体系结构要分为用户空间和内核空间的原因?
  3. BASH和DOS之间的基本区别是什么?
  4. Linux 有哪些系统日志文件?
  5. Java GC机制?GC Roots有哪些?
  6. 红黑树讲一下,五个特性,插入删除操作,时间复杂度?
  7. 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.你有什么想问我吗?

最后

关于文中涉及面试题目及答案,已经给大家整理好了。有想获取的小伙伴一键三连(点赞+收藏+关注) 后,添加微信:mxm9843 即可免费获取到