写在前面
大家好,这是一篇超长面经+总结,是对自己上一阶段的梳理,也希望给以后准备找工作/正在找工作的同学们多多少少一点帮助。
基本介绍:普通985本+海外渣硕,大二转到CS专业,大三项目交流3+2,19年10月留学毕业,有工程项目,无实习无额外加分项,主Java研发岗,非battmd级别选手,加一起拿了4个offer,最后准备去星环了。
一,面经集合(按公司划分)
最早是去年的12月开始,中间有几个月在研究室抗压没有面,考虑到读者的阅读喜好所以按公司划分面经,强调一点是时间线很重要,前后自己面试能力也有差距,请留意。一般都是远程视频/电话面,每场面经内问题提问顺序不定。一些过于水的面经没有包括在内(比如8月前的某为,银行)
字节跳动
字节跳动一面12.24(游戏研发 秋招补招)
程序:
1.实现优先队列
2.设计2D游戏功能 输入两个角色位置 输出射击转向角
3.环形buffer设计
提问:
1.二叉树与堆的关系
2.B+树
3.时间复杂度
4.内积点乘叉乘
5.CAS机制
6.重载 重写和多态
字节跳动二面12.28
1.内积点乘叉乘
2.堆
排序 各种数据结构
时间复杂度空间复杂度分析
集合类中为什么不用int(为什么Java集合不能存放基本数据类型,只存放对象的引用)
同步和异步
多态
TCP表头
四次挥手
字节跳动一面3.30(服务器研发 春招)
链表k次反转
DB语句查询比平均分高的学生总数
如何查询IP地址是否在国内网段
线程池
Reentrantlock
synchronized
组合索引
JVM内存结构,类加载信息存储在哪
9.数据库的隔离级别
- cookie在http报文的那个位置
字节跳动二面3.30
磁盘文件到JVM的加载过程
类存在的意义
如何确定session存放值比如用户id
手写生产者消费者模式
a数组用b数组顺序排序
字节跳动7.17(研发 秋招提前批)
查找树中连接两个节点最大路径
进程间通信效率最高的方式
3.共享内存怎么实现
- Mysql四种隔离级别
5.Mysql InnoDB和MyISAM区别
Mysql profile是做什么的
Redis负载均衡 热键和大键的影响
8.Redis主从机制 分片分布式
缓存怎么实现
LRU和FIFO
分页原理
12.tcp拥塞控制
http报文头结构
http报文长度边界字段
字节跳动8.18(秋招)
http和https
time-wait和close-wait
最左看二叉树第一个节点
mysql左前原则
innodb索引 b+树子节点一定存表行信息吗
redis持久化 主进程和子进程
有序集合数据结构怎么实现
jvm判断回收
minor gc和full gc
类加载过程
java四种引用
方法区
项目
队列集合怎么实现的,有哪些
类加载过程的不足
blockingqueue怎么实现阻塞
哪些对象可以作为gcRoot
字节跳动8.18二面
dns过程
dns递归调用和叠代调用
tcp可靠性含义
tcp可靠性应用
拥塞机制
长连接短链接
http常用首部字段
select函数,epoll函数
静态链接库和动态链接库
进程和线程
编译和链接的区别
最大连续和dp解法
面试总体体验很好很全面,我基本都是二面挂,每次都是面挂之后总结重新刷新知识库,然后学习很多。
阿里
阿里巴巴7.24(一二面在一天,秋招提前批)
项目
大数据优化内容
口述程序整数反转
zk的作用
5.kafka的partition
kafka中一个broker故障,会怎么办
flink如何实现exactly-once语义
flink的实现原理
其他流处理框架与flink的区别
spark如何处理流处理
storm如何处理流处理
lambda框架原理
如何解决超卖问题
如何用算法解决高并发
如何大数据快速查询一条数据
redis存储数据,在工程中的作用
怎么做evaluation验证flink效果
阿里准备的最多,面试官安排了三面,不过和三面面试官商量了下,我10月毕业,他们招11月之后的,为了怕被泡池子(因为能力并不突出)还是放弃了。
腾讯
腾讯 3.7一面(春招实习)
Java多态的实现
TreeMap和HashMap的区别
3.MySQL索引底层的实现
什么是NoSQL,NoSQL的常见应用
Redis的数据结构
腾讯3.8二面
GC是怎么判断年代的
浮点数怎么存储
什么是TTL,什么是TraceRoute
腾讯3.20三面
1.项目,大数据框架了解
2.GC回收
网络查找命令
Linux磁盘命令
5.网络第二层和第三层有什么区别
6.linux的常用指令
面试官说理论还可以,具体操作能力不行。。
腾讯 8.9(秋招提前批)
自己讲:
JVM
linux内核
zookeeper
kafka消息队列
数据库mysql和redis
分布式事务
微服务框架
网络攻击
代码耦合性
项目完成背景
TCP,UDP
期间提问:
Zab协议
进程地址存储
网络编程IO多路复用
网络传输模型
IO过程
新的微服务框架
王者荣耀项目组。。。我还说我不喜欢玩王者哈哈哈(一个半小时脑子晕掉了)
拼多多
拼多多3.25 一面(春招 java岗)
1.jsp到servlet过程,servlet生命周期
2.http与https区别,传输过程,如何交互
- hashmap结构,concurrenthashmap结构
4.线程池声明与使用
JVM内存模型,垃圾回收
Tomcat运行原理
手撸死锁模型
流处理与批处理区别
9.storm和flink的区别
10.怎么学习的
拼多多3.28 二面
手撸适配器模式
手撸代码并查找边界错误
Spring MVC框架
BASE原则
分布式原理CAP原则
Java反射
private属性,final类型举例
ReadWriteLock
数据库-四种隔离级别-脏读/幻读/-索引
微信视频面,最后问了我要不要去大数据研发,我拒绝了,当时比较傻缺
晨星
晨星3.26(一面)
- 网络:tcp udp区别
http协议介绍
- 面向对象 抽象类和接口区别
3.单例模式实现
数据库索引
Js怎么面向对象
装饰器模式原理
7.静态类和单例模式有什么区别
设计一个股票推送的设计模式
容错分析题:页面加载慢原因
晨星二面(留的作业)
1:请在数据库设计两个表,分别存储股票每天的交易数据表,和上市公司的运营数据表
,画出相应的数据表和对应关系。
- 请用TF-IDF算法计算相关度,并采用适当的机器学习训练模型来进行训练,找到更高的筛选文档准确率
3.聊人生
然后就是hr面了
总结
感谢你看到这里,文章有什么不足还请指正,觉得文章对你有帮助的话记得给我点个赞,每天都会分享java相关技术文章或行业资讯,欢迎大家关注和转发文章!
欢迎关注公众号:前程有光,领取一线大厂Java面试题总结+各知识点学习思维导+一份300页pdf文档的Java核心知识点总结!