写在前面
大家好,这是一篇超长面经+总结,是对自己上一阶段的梳理,也希望给以后准备找工作/正在找工作的同学们多多少少一点帮助。
基本介绍:普通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面了
总结
最后我为大家准备了ava核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书一起免费分享给大家!
资料获取方式:转发和评论这篇文章,然后关注小编,后台私信【java】即可打包带走所有资料~