提前批头条、百度,均已offer
目前免笔试的提前批就投了头条和百度,幸运的是都顺利拿到了 offer,面评都挺高的,offer 审批也等了快一周,秋招可以保底了,顺便再争取一下阿里。
头条面经
一面(60分钟)
- Redis 里的有序列表底层实现
- Redis 集群、哨兵机制
- 消息中间件的选型问题,为什么要用 MQ
- Linux 中能否删除一个正在运行的文件
- Linux 常用的命令,如何排查 bug
- JVM 垃圾回收如何解决对象循环引用的问题,垃圾回收算法
- TCP 的四次挥手的详细过程,为什么会有 CLOSE_WAIT 和 TIME_WAIT
- 输入一个 url 并回车,这个过程中涉及到哪些网络协议,具体描述
- MySQL 索引一般会在什么情况下创建,讲讲存储引擎
- 说说 B 树和 B+ 树的区别,为什么 InnoDB 用的 B+ Tree 而不是 B Tree
- synchronized 和 Lock 的区别
- 进程如何同步,页面置换算法
- 三个编程题:题目记不起来了,涉及桶排序、层次遍历、动态规划
二面(60分钟)
- 实现一个阻塞队列(生产者消费者模型),编程
- wait/notify 机制,为啥要放在同步代码块中,判断条件为啥用 while 循环
- CMS 垃圾回收算法的流程,标记清除算法
- ConcurrentHashMap 的内部实现,JDK 1.7 与 1.8 有什么不同
- 找出10000个数据中第 k 大的数,描述具体过程并编程(bug free)
- 聚簇索引和非聚簇索引,为什么要用 B + Tree
- 一条 SQL 语句执行的流程,尽量说详细
- AOP 的实现原理,动态***和静态***的区别
- JVM 内存模型的结构
- 输入一个字符串,包含数字、加减乘除和括号,输出结果,编程(调试并运行成功)
三面(50分钟)
- 登录注册系统怎么做,应该注意什么
- 登录怎样校验密码,海量用户同时登录怎么优化
- Cookie 和 Session 的区别,怎样存海量 Session
- 分布式 Session 问题
- 显示网站的用户在线数的解决思路
- 一致性哈希
- 怎样解决 Redis 和数据库一致性问题
- Redis 集群、主从架构
- 分布式事务
- 给定一个数字 x,要求使用 k 个数字求和可以得到 x,数字从1-9中选择,不能重复。
例如 k = 3, x = 9时输出:[[1,2,6], [1,3,5], [2,3,4]](刚开始结果重复,加了个 set 调试了两遍才写出来)
百度面经
一面(50分钟)
- 在线程 A 对 HashMap 进行迭代查询的时候,线程 B 对 HashMap 进行增删改会发生什么
- ConcurrentHashMap 的数据结构与 HashMap 有什么区别与联系
- Java 内存模型中哪一个区域不会发生 OOM 异常
- 类加载流程,越详细越好
- 为什么要有双亲委派,类加载器有哪些
- MVCC 是什么,简述 MySQL 的隔离机制
- MySQL 的锁机制
- Java API 中 NIO 和 BIO 的区别
- 消息中间件的好处,如何选型
- Redis 的 IO 模型;常用的数据结构;zset 的内部实现,为什么用跳表不用红黑树,跳表的空间复杂度
- AOP 的抽象属性之间的关系与联系
- 有什么要问的问题(问了面试官对我的评价:主观能动性较强,基础很好,表达能力强,中等偏上,但离 top student 还有一段距离,对某些地方理解的深度不够)
二面(40分钟)
- 介绍项目,秒杀平台如果想支持更大的并发量应该如何优化?如果把项目部署成多个服务,架构方面应该怎么做
- 数据库的 ACID,MySQL 底层是如何保证原子性的
- 设计一个实时监测 MySQL 的工具,可以监测每条 SQL 语句运行时间、事务的运行和数据库的连接信息等
- MySQL 的 binlog、redo log 和 undo log
- HTTP 和 HTTPS 的区别
- Redis 的主从架构、哨兵机制
- Redis 的持久化,RDB 和 AOF 的对比
- MQ 如何保证消息传输的可靠性
- 问了学校的研究方向、本科学习情况及获奖情况
三面(40分钟)
- 项目中的细节问题
- 对 Spring 的理解
- AOP 动态***的实现
- 对并发的了解
- 场景设计题:实时更新街道的交通拥挤状况
- SQL 常见的优化手段
- 问了平时的学习方法以及三观问题
阿里找朋友直推了部门主管,昨天已经完成了测评,现在就等阿里的电面了,如果没过就去头条了。总的来说秋招还算比较顺利吧,接下来就好好写毕设,好好陪女朋友,好好享受最后一年的校园生活。
#面经##Java工程师##字节跳动##百度#