我的跳槽面试总结:字节跳动、百度提前批,offer轻松拿到手

毕业3年了,当初学习计算机,目标就是毕业后能够顺利进入大厂工作,但因为自己是双非本科,加上缺乏项目经验,所以在BATJ等一线大厂里并没有什么优势,所以自己也暗自下决心沉淀一段时间,做些项目练练手,这样再去大厂心里就更有底了,所以今年7月份就陆陆续续开始着手准备跳槽的事情了。幸运的是,字节跳动和百度都是免笔试的提前批,顺利地拿到了offer,面评也挺高,但阿里在三面的时候挂了,心里有点不甘,但能够拿到字节和百度的offer,还是非常惊喜的。
我的跳槽面试总结:字节跳动、百度提前批,offer轻松拿到手_第1张图片

字节跳动(头条)

一面(45分钟)

1.JVM 的组成;

2.多态的实现;

3.内部类为何可以访问外部类对象的属性及方法;

4.HashMap 的源码 Redis dictht 源码分析、存放数据时发现正在扩容会怎么样;

5.如何判断 SQL 语句用到了哪些锁;

6.MySQL 索引的类型;

7.Redis v.s. Memcached;

8.MySQL 主从复制的方式;

9.CAS 原理、含义、底层实现、存在的问题;

10.项目相关问题;

  1. 手撕算法:变形的二分查找。

二面(60分钟)

B树什么时候的高度会变高;
数据库隔离级别、索引、RR隔离级别下的SQL查询结果;
多进程与多线程模式的区别;
守护进程、僵尸进程、孤儿进程,如何创建守护进程;
一次 HTTP 请求涉及的网络协议及全过程;
手撕算法:系统用户在线峰值及持续时间统计。

三面(46分钟)

Java 存在内存溢出的现象吗,内存的分配方式、GC 机制;
final、finally、finalize 的区别与用法;
设计模式之单例模式;
Java 的反射、含义、使用、底层实现;
悲观锁、乐观锁在数据库、Java中的实现;
TCP 拥塞控制原理;
time-wait 连接过多的原理如何解决;
手撕算法:子串匹配问题。

四面(75分钟)

1.项目介绍;

2.请介绍一下你了解的源码;

3.手撕算法:三面手撕算法变形(未能想出最优解,还是太菜了);

4.系统设计。

百度

一面(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 常见的优化手段
问了平时的学习方法以及三观问题

拿到字节和百度的offer还犹豫了好几天,女朋友建议我去字节,考虑了一天,和字节的HR沟通好端午节之后入职。

你可能感兴趣的:(程序员,面试,Java)