百度工程效能部面经
提前批刚开始就定向内推了百度的商业架构部,简历挂了,一直共享中,没人捞,后面在 Boss 上找到这个部门的经理,把简历发给他了,马上就变成面试流程中了,让我注意接听面试电话。
一面 2021/8/27 14:00 1h16min
面试官自我介绍
候选人自我介绍
简单的看两道小算法热热身
- 插入排序、快速排序二选一
- LeetCode 145 二叉树的后序遍历二叉树后序遍历(非递归)
- 长度为 n 的单链表,在以时间复杂度为 O(n) 的情况下,怎么快速找到第 1 / 3 元素的位置,把这个元素打印出来(口述)
实习或者自己的小项目中接触过设计模式吗?比如用过什么设计模式?
多态这个概念口述一下?
HashMap 和 TreeMap 区别了解吗?使用场景了解吗?说一下 HashMap 的底层实现?
LinkedList 和 ArrayList 有什么区别?LinkedList 底层是双向链表,这个双向链表给他提供了哪些得天独厚的优势?
多线程的实质了解吗?
Java 线程池有哪些参数?
标准的 JDK 有几种方法去新建、启动一个线程?
CPU 使用率和负载的概念了解吗?(面试官解释了一下为什么需要学习操作系统,学习操作系统对工作有什么帮助)
浏览器输入
www.baidu.com
到页面呈现,后台经历了哪些过程?Spring AOP 原理了解吗?如何用 JDK 原生的 API 实现自己的动态代理模式?
MySQL 的存储引擎有哪些?
索引是一个什么东西呢?
创建索引时要遵循哪些基本原则?
索引在查询时候要遵循一个最左匹配,这个最左匹配是什么情况?
联合索引 (a, b, c),where 条件为 a = 1, c = 2,这个索引会生效吗?
在 Spring 中,操作数据库时,想实现一个事务,该怎么写代码?
有张 Person 表,有 name 和 age 两个字段,如何找出这张表年龄第二大的人,如果人数大于 1,我们需要把人名打印出来,这个 SQL 语句怎么写?
SELECT name FROM person WHERE age in (SELECT DISTINCT age FROM person ORDER BY age DESC LIMIT 1, 1)
- Redis 做分布式锁了解吗,怎么实现的?如果有 A、B 两个线程同时获取锁,都去 Redis 中加锁,假设 A 先加锁,但是 A 比较磨叽,没加完,这时候 B 也来加锁,B 不磨叽,立马加上了锁,A 就会产生一个独占了这把锁的假象,继续执行,怎么解决?
- Linux 了解的多吗?如何找出当前路径下 .java 文件的个数?
- 用过 Docker 吗?用自己的话说 Docker 和传统的虚拟机有啥区别?
- 实习了多久?主要负责什么业务?
- 在 JD 那边主要负责什么?
- 你感觉经过两次实习,你认为自己比较得意的技术产出是什么?
- 中间件都用什么?
反问:
- 具体做什么(iCode、iCoding、代码统计分析平台),这些平台会商业化吗?
- 百度的新人培养机制?
面试官上来先做了自我介绍,说了他的观点,面试不是拷问,而是技术交流。不得不说百度的面试体验真的好,你不会的问题会引导你,有时候还会给你讲,并且给你讲学这块知识在工作中会有什么用处。
二面 2021/9/1 10:30 1h10min
- 自我介绍
- 本科在哪里?没考虑考研吗?
- 挑一下你之前做过的比较有技术含量的项目讲一下吧,先介绍一下业务、再介绍一下技术架构、还有一些难点?
- 说一下你为什么要使用 Lucene?索引的是什么?需要建几个索引?标题、描述、内容的权重是一样的吗?
- 还引入了什么?答了引入 Nginx 做负载均衡,继续追问如果其中一个服务出问题怎么办,怎么保障他的高可用?
- 说一下实习的项目吧?
- 为什么配置态服务和运行态服务要分开?我在运行态服务里面把配置放到配置文件中不行吗?
- 配置态配置存在哪里?运行态服务能访问这个数据库吗?为什么要引入配置中心,不让运行态服务去查数据库呢?怎么保证数据库和配置中心的数据一致性呢?数据库成功了,推送配置中心没成功怎么办?重试还不成功呢?
- 你觉得用配置中心有什么好处呢?直接在运行态读数据库不也挺好,为什么要引入配置中心呢?
- 再举一个例子,比如说有多个部门,不同的部门存的数据格式都不一样,管理的服务也不一样,他们有一些数据可能相互需要,这时候,你觉得用配置中心能解决这个问题吗?
- 服务 A 的数据库改了,服务 B 怎么办?这个配置需要多个部门同时使用,所以这个变动别人需要感知到。各个部门都维护一套数据库,相互调用接口这个方案好,还是都存到一个配置中心,大家互相拉取好?说一下优缺点?
- 在 Java 中,有 hashCode() 方法和 equals() 方法,当我定义一个对象时,为什么有时候要重写这两个方法?什么时候需要重写这两个方法?
- 你了解函数式接口吗?他有什么作用?解决了什么样的问题?
- Lambda 表达式解决了什么问题?临时的什么对象?为什么创建了这个对象就可以解决问题?这个对象有什么特点?如果没有 Lambda 你怎么做呢?Lambda 写的那个表达式是干什么用的?Lambda 表达式真正的好处在哪?
- 函数式接口有什么好处?你知道 Java 里面默认的函数式接口有哪些?你用过什么方法里面,会用到函数式接口作为参数?
- 用了 Comparable 接口的排序方法和没用 Comparable 接口的排序方法有什么优点呢?
- 记事本写代码,LeetCode 75 颜色分类
反问:
- iCode 是自研的还是基于 GitLab 改造的?
- 用什么技术栈?用微服务吗?
- 平常上下班时间?
- 有新产品在开发吗?
面试官没有开摄像头,周围环境比较嘈杂,在我自我介绍完之后,问我本科是哪里的,我不好意思的说出了学校之后,面试官问我有考研的打算吗,我回答了没有。这一面感觉压力十足,面试官应该是一个 Team Leader,总是抓着一个点往下延伸,问到不会为止,也不怎么问八股文,问你一个知识没答上来,面试官会从头开始问,逐步引导,但是总给人一种咄咄逼人的感觉,面试体验比较差,面完第二天就简历共享了。
#百度##面经##校招##基础架构工程师#