写在前面

1. 写作目的:对自己上一阶段的总结,也希望给准备找工作的同学们多多少少一点帮助,大牛们请无视。

2. 基本介绍:普通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.堆
3. 排序 各种数据结构
4. 时间复杂度空间复杂度分析
5. 集合类中为什么不用int(为什么Java集合不能存放基本数据类型,只存放对象的引用)
6. 同步和异步
7. 多态
8. TCP表头
9. 四次挥手

字节跳动一面3.30(服务器研发 春招)
1. 链表k次反转
2. DB语句查询比平均分高的学生总数
3. 如何查询IP地址是否在国内网段
4. 线程池
5. Reentrantlock
6. synchronized
7. 组合索引
8. JVM内存结构,类加载信息存储在哪
9.数据库的隔离级别
10. cookie在http报文的那个位置

字节跳动二面3.30
1. 磁盘文件到JVM的加载过程
2. 类存在的意义
3. 如何确定session存放值比如用户id
4. 手写生产者消费者模式
5. a数组用b数组顺序排序

字节跳动7.17(研发 秋招提前批)
1. 查找树中连接两个节点最大路径
2. 进程间通信效率最高的方式
3.共享内存怎么实现
4. Mysql四种隔离级别
5.Mysql InnoDB和MyISAM区别
6. Mysql profile是做什么的
7. Redis负载均衡 热键和大键的影响
8.Redis主从机制 分片分布式
9. 缓存怎么实现
10. LRU和FIFO
11. 分页原理
12.tcp拥塞控制
13. http报文头结构
14. http报文长度边界字段

字节跳动8.18(秋招)
1. http和https
2. time-wait和close-wait
3. 最左看二叉树第一个节点
4. mysql左前原则
5. innodb索引 b+树子节点一定存表行信息吗
6. redis持久化 主进程和子进程
7. 有序集合数据结构怎么实现
8. jvm判断回收
9. minor gc和full gc
10. 类加载过程
11. java四种引用
12. 方法区
13. 项目
14. 队列集合怎么实现的,有哪些
15. 类加载过程的不足
16. blockingqueue怎么实现阻塞
17. 哪些对象可以作为gcRoot

字节跳动8.18二面
1. dns过程
2. dns递归调用和叠代调用
3. tcp可靠性含义
4. tcp可靠性应用
5. 拥塞机制
6. 长连接短链接
7. http常用首部字段
8. select函数,epoll函数
9. 静态链接库和动态链接库
10. 进程和线程
11. 编译和链接的区别
12. 最大连续和dp解法

面试总体体验很好很全面,我基本都是二面挂,每次都是面挂之后总结重新刷新知识库,然后学习很多。


阿里

阿里巴巴7.24(一二面在一天,秋招提前批)
1. 项目
2. 大数据优化内容
3. 口述程序整数反转
4. zk的作用
5.kafka的partition
6. kafka中一个broker故障,会怎么办
7. flink如何实现exactly-once语义
8. flink的实现原理
9. 其他流处理框架与flink的区别
10. spark如何处理流处理
11. storm如何处理流处理
12. lambda框架原理
13. 如何解决超卖问题
14. 如何用算法解决高并发
15. 如何大数据快速查询一条数据
16. redis存储数据,在工程中的作用
17. 怎么做evaluation验证flink效果

阿里准备的最多,面试官安排了三面,不过和三面面试官商量了下,我10月毕业,他们招11月之后的,为了怕被泡池子(因为能力并不突出)还是放弃了。


腾讯

腾讯 3.7一面(春招实习)
1. Java多态的实现
2. TreeMap和HashMap的区别
3.MySQL索引底层的实现
4. 什么是NoSQL,NoSQL的常见应用
5. Redis的数据结构

腾讯3.8二面
1. GC是怎么判断年代的
2. 浮点数怎么存储
3. 什么是TTL,什么是TraceRoute

腾讯3.20三面
1.项目,大数据框架了解
2.GC回收
3. 网络查找命令
4. Linux磁盘命令
5.网络第二层和第三层有什么区别
6.linux的常用指令

面试官说理论还可以,具体操作能力不行。。

腾讯 8.9(秋招提前批)
自己讲:
1. JVM
2. linux内核
3. zookeeper
4. kafka消息队列
5. 数据库mysql和redis
6. 分布式事务
7. 微服务框架
8. 网络攻击
9. 代码耦合性
10. 项目完成背景
11. TCP,UDP
期间提问:
1. Zab协议
2. 进程地址存储
3. 网络编程IO多路复用
4. 网络传输模型
5. IO过程
6. 新的微服务框架

王者荣耀项目组。。。我还说我不喜欢玩王者哈哈哈(脑子晕掉了)


拼多多

拼多多3.25 一面(春招 java岗)
1.jsp到servlet过程,servlet生命周期
2.http与https区别,传输过程,如何交互
3. hashmap结构,concurrenthashmap结构
4.线程池声明与使用
5. JVM内存模型,垃圾回收
6. Tomcat运行原理
7. 手撸死锁模型
8. 流处理与批处理区别
9.storm和flink的区别
10.怎么学习的

拼多多3.28 二面
1. 手撸适配器模式
2. 手撸代码并查找边界错误
3. Spring MVC框架
4. BASE原则
5. 分布式原理CAP原则
6. Java反射
7. private属性,final类型举例
8. ReadWriteLock
9. 数据库-四种隔离级别-脏读/幻读/-索引

微信视频面,最后问了我要不要去大数据研发,我拒绝了,当时比较傻缺


晨星

晨星3.26(一面)
1. 网络:tcp udp区别
http协议介绍
2. 面向对象 抽象类和接口区别
3.单例模式实现
4. 数据库索引
5. Js怎么面向对象
6. 装饰器模式原理
7.静态类和单例模式有什么区别
8. 设计一个股票推送的设计模式
9. 容错分析题:页面加载慢原因

晨星二面(留的作业)
1:请在数据库设计两个表,分别存储股票每天的交易数据表,和上市公司的运营数据表
,画出相应的数据表和对应关系。
2. 请用TF-IDF算法计算相关度,并采用适当的机器学习训练模型来进行训练,找到更高的筛选文档准确率
3.聊人生

然后就是hr面了


BiGo

BiGo一面12.20
1. 原始项目介绍
2. Java HashMap/TreeMap
3. 多线程方法
3. JVM GC算法
4. 死锁
5. Flink
6.static关键字
7.数据库常见支持类型
8. char和varchar的区别,优缺点
9.索引的种类
10. 联合索引最左原则
11. 索引底层:B+树,散列,位图
12. java hashmap put操作
13. hashmap扩容,承载因子
14. 设计模式在自己工程中使用举例

二面
聊项目

第一个面的公司(当时还不知道bigo是什么公司。。)感觉当时bigo真的很缺人,主管还加了微信聊了很久,可是当时真的很菜,多线程一窍不通。。


海康

海康威视7.17 电话一面
1. 项目
2. zookeeper怎么实现分布式锁
3. 分布式锁作用
4. Hashmap,concurrentHashmap
5. redis分布式配置
6. redis持久化
7. redis单线程作用
8. 单例模式
9. 项目中遇到的OOM问题
10. 怎么监视JVM数据

海康9.21 现场二面
1. hbase读写过程
2. flink工程
3. 设计通过flink查找9点10分各个路口通过车辆的信息
4. 学习flink的方法和途径
5. jvm错误排查 oom排查 jvm问题:垃圾回收时间过长
6. 十个kafka消费者线程消费,如何设计在多线程场景下完成统计
7. 工程


b站

bilibili 8.6 一面
1. redis预热
2. redis存储数据
3. zookeeper原理 ZAB协议
4. zookeeper加节点
5. 分布式锁种类
6. zookeeper分布式锁,redis分布式锁

b站8.14 二面
1. 项目
2. 怎么做项目测试
3. java Threadlocal类(线程变量本地化)
4. mysql存储引擎
5. sql优化
6. 进程线程区别
7. SSM框架常用注解
7. 自定义注解


星环

星环 8.9 电话一面
1. 工程flink的checkpoint的具体过程
2. checkpoint对系统有什么影响
3. int和integer的区别,装箱与拆箱
4. 怎么调用integer的方法,具体过程
5. java内部类和静态内部类
6. 二叉树前序遍历
7. best time to buy and sell stock最多二次买卖
8. 常见设计模式

星环8.27 视频一面
1. c++static
2. java static
3. 操作系统栈和堆区别
4. 存储代码段
5. 缓存,缓存不一致性
6. tcp与udp应用场景
7. 聚簇索引与非聚簇索引
8. join的种类以及实际操作
9. 编程:二叉树按层遍历
10. 尬聊了一会儿工程

二面
1. 子数组和为0 dp算法
2. flink怎么保证exactly-once语义
3. 高并发环境怎么做测试
4. 常用的检查系统failure的方法
5. java堆怎么排查错误
6. 工程
感觉主要是临场写代码,还问了我好多测试的内容?

三面
0. c++虚函数
1. fibbonacci算法改进
2. redis怎么存储数据
3. redis存的key是什么值
4. MySQL的ORM方式
5. mybatis怎么对应实体
6. applicationcontext逻辑
7. bean的生命周期和种类
8. flink的检查点机制怎么改进?
9. flink窗口
10. flink的任务失败模型
11. 还有很多工程上的细节
狂怼项目,大佬知识量储备极高,我实为弱鸡


有道

有道8.24
1. 网络可靠传输
2. tcp报文结构
3. 网络传输模型
4. 拥塞机制
5. 流量控制
6. linux内存磁盘转化
7. linux线程状态
8. linux页表结构
9. 内核怎么处理线程(初始化,加锁)
10. 操作系统与jvm的不同
11. 类加载过程
12. 线程怎么去访问jvm里的类信息
13. pthread

面的java岗,当时想终于可以被问java相关了,结果给我来这个,问线程间通信方式的时候唯一一次轻怼面试官,接着就开始问POSIX了


网易互娱

网易游戏8.28 一面
1. 操作系统进程分配区,内存管理
2. io多路复用
3. 操作系统层面怎么实现互斥锁
4. 数据段组成
5. 网络tcp建立与释放
6. tcp长连接 heartbeat
7. tcp半连接
8. 图的遍历算法 迪杰斯特拉算法
9. 上楼梯
10. 64匹马赛跑,8个跑道,选出最快4匹马
11. java单例模式一套
12. java多线程原子锁,cas机制,aba问题
13. 缓存置换lru实现
14. 图形学了解
15.快排实现
16. 堆排序实现,怎么建堆
17. cpu分配时间片算法

网易互娱10.15 二面
1. 项目
2. 输入整数n,输出1-n的随机数组(约瑟夫环?)
3. 链表成环,并找到入口节点,数学推导

种种原因 面试拖了好久


深信服

深信服 8.17
1. 4个项目挨个问
2. C++的new和malloc
3. C++重载
4. 进程间通信的互斥方法
5. 堆和栈的区别
6. 介绍进程和线程区别
7. linux内核
8. 介绍每种设计模式以及应用
9.单核cpu多线程
10. 指针有了解吗
11.文件软链接硬连接

二面
1. linux 怎么进shell
2. linux的swap分区
3. 网络tcp四次挥手
4. 应用层协议http post和get请求
5. jmeter集合测试
6. 大数据有哪些failure 怎么应对
7. 分布式架构的性能优化
8. mysql存储引擎
9. xss攻击,sql注入
10. 网络虚拟化技术是什么,常用平台

值得一提的是深信服hr真的知识面好广,给我讲的业务划分和概念很细hhh佩服


依图

依图 9.4
1. 项目
2. zk用途,分布式锁
3. redis分布式锁
4. 括号匹配编程
5. 树节点z-order打印

二面重感冒,写了个3-sum的变型题,状态太差了,不过很喜欢这种考察方式,上来没说几句就写代码,写完就完事hhh


招银科技

招银 9.29
1. java基本数据类型
2. java对象生命周期
3. mysql和redis区别
4. 线程生命周期
5. 多线程好处
6. 线程池作用

招银10.12
一面:
数据库mysql的隔离级别
怎么实现多线程安全
jvm的类加载机制和垃圾回收原理
b+树和红黑树区别
二叉树的遍历方法 写按层遍历二叉树
flink和spark的区别
单例模式和适配器模式

二面:
工程达到的效果,输入是什么输出是什么
有点像毕业答辩

比较水。。。


二,知识点汇总

考过的面经提取的基础知识点,便于查缺补漏。

算法:双指针,排序,贪心思想,二分查找,分治,回溯法,动态规划

数据结构:数组,链表,树,栈和队列,图,堆,散列表

JavaSE:static,装箱拆箱,多态,设计模式(单例模式,适配器模式,工厂模式,装饰器模式,迭代模式。。),集合(HashMap,LinkedListQueue, ArrayList, PriorityQueue, JUC包里的集合),NIO

多线程:CAS机制,volatile,synchronized,JUC包(CountDownLatch, Reentrantlock, FutureTask,ReadWriteLock)

JVM: 垃圾回收算法,垃圾回收器,类加载,内存模型,OOM处理,工程优化

JavaEE:SpringBoot,SpringMVC,AOP,IOC,MyBatis,Hibernate,微服务框架

分布式理论:CAP,BASE,2PC和3PC,Paxos,ZAB协议

操作系统:linux,进程与线程,IPC方式,PIV,shell,页表结构,同步异步,epoll函数

数据库:MySQL,ACID,索引,InnoDB,MyISAM,MVCC,NoSQL,Redis

网络:网络架构,tcp可靠性,UDP,HTTP,DNS,IP,ARP,Ping,TraceRoute

三,学习工具推荐

1. 写博客是很好的习惯,各大博客网站

2. 每个知识点掰开揉碎要讲的东西很多,不能浅尝辄止。

3. 看书很重要,知识体系会有一个完整的整合过程。

基本好书可以多看几遍,比如深入理解JVM,Effective Java,java并发和深入剖析tomcat,图解系列,MySQL技术内幕,从paxos到zk一致性,有些书内容有些过时不过有些部分很精彩可以参考,操作系统我没找到什么好理解的书,,

四,关于笔试

我总共参加了50场左右笔试,每次笔试答题过程都会存在本地ide,从刚开始的都不会到最后可以A满4题 也是自己训练了很多,以下是自己的过程总结:

先从算法导论那本书入手,熟悉基本算法和基础集合的初始化,刚开始会很艰难,尤其是排序算法,我建议还是多练多会,对以后的提升很重要。

然后在leetcode上找题,刚开始我先找easy题做,做了50道左右感觉可以完整的解出一道题,开始按顺序从头做。一般我每道题会解至少3遍(因为刚开始不太会,先早上按照答案抄一遍,然后凭借印象自己A一下,晚上的时候再A一下,三天之后再A),每天做3道题左右,这种情况持续了一个半月吧,当时效果其实不太明显,不过后期还是有收获的。

leetcode上刷了200+之后转战牛客,因为企业面试现在用牛客比较多,而且我比较喜好牛客什么都没有写的ide,比较舒服。牛客上开始刷剑指offer,其实第一阶段我就偶尔有刷,不过这一次是有底气的刷,刷完之后觉得剑指offer应对笔试面试还是神器,所以以后每次要面试写代码的时候我都有看这个。

后来就懒了,每天在牛客的题库找两三道题做,直到把经验值刷到10为止。

以上过程仅供参考,请理智食用

最后关于笔试作弊,请不要拿社会什么的做借口,作弊可耻是基本常识,并不会因为形势或人数的因素而改变。

五,关于面试

有技术只是入场券,拿offer还是要一定的运气。当然,很多大牛之所以为大牛是因为平时积累的就足够多,会议论文,acm竞赛,大厂实习,科研创新成绩等等,非大牛的我们就要做好任人挑选的准备,态度端正到最后一刻,有比较烦人的面试官是常事,保持心态很重要。

面试官:“最后有什么问题要问我的吗?”

我一般是问一些公司业务,和进去之后做什么工作,然后直接问后续流程(我觉得挺好的,既能节省彼此时间也能直到自己一些技能点不足,下次面试加以改进)

六,关于选择

不要给自己太大压力,找工作和考试不一样,要顺着自己的心意在自己可达的范围内找合适的,不是追高(当然有上进心是好事)。努力很重要学会放下和生活也很重要。研发岗位有游戏研发,服务器研发,客户端研发,面向各种语言的研发,大数据研发,网络工程研发,安全研发等等,不同机构和公司业务要多少了解一点再选比较好。

七,一些Q&A

1. 内推有用吗

感觉内推不能太重视也不能过于轻视。有的公司内推纯粹是调用职工积极性来吸引简历,没有实质用途,比如网易?有的公司真的可以加快进程,提高成功率,所以还是提前找内推比较好。

2. 面了hr面之后就稳了吗

我面了7个hr,最后到手的offer只有4个,成功率57%,心累

3. 留学生x月毕业算应届吗

感觉一般公司还是会介意,

虽然没有明确拒的公司但有介意这个问题的公司:b站,星环,海康

秋招明确拒了的:美团 拼多多 百度提前批

其他的没有提到过。

4. 招聘信息在哪得到的

牛客网,微信群,公众号,学长内推,各公司官网。以此为契机能交朋友也是好事。

5. 马上面试了,听说要手撕代码,我一点不会写代码怎么办

赶紧背按层遍历二叉树,我一个人就考了三四遍也是晕

6. 行测需要准备吗

行测题都差不多的,实在担心的就刷一刷题,一般行测分查不会很大,主要是性格测试,我的经验是想象一个乐观团结积极向上的人会怎么选,有些中肯题如果是银行就保守型选,如果是互联网公司就激进型选,具体也靠情商。

春秋招面经总结:下个篇章的开始相关推荐

  1. 这应该是把春秋招讲的最清楚的文章了,不接受反驳

    对于日后需要找工作的同学来说,春招/秋招可以说是学生生涯中非常重要的一战,但是我发现很多人却对春秋招的了解甚少,有些人甚至以为是毕业之后再开始找工作,进而导致了找工作的最佳时间段. 说实话,要嘛错过春 ...

  2. 【春秋招面试分享】讲一讲当时春秋招时做过的项目以及推荐几个项目+推荐面试突击的视频

    前阵子写了一篇关于春招的文章,没看过的或许可以看一看 有必要说一说即将到来的春招(经历+重要性+如何准备) 主要是给还没有参加过面试的学生提供一些参考,文中跟大家说了自己当时在项目这块,是非常薄弱的, ...

  3. Java后端春秋招之旅

    作者:我要进国企! 链接:https://www.nowcoder.com/discuss/511499?source_id=profile_create&channel=1009 个人情况 ...

  4. Android篇:2019初中级Android开发社招面试解答(下)

    金三银四,冲击大厂,你值得拥有的一份2019初中级移动端社招面试总结+解答 你当前所处: Android篇:2019初中级Android开发社招面试解答(下) Android篇:2019初中级Andr ...

  5. 送给即将春秋招的同学--一名服务端开发工程师的校招面经总结

    前言:作为一名21年大学毕业的Java服务端开发工程师,从19年10月份(大三上)开始进行日常实习面试,期间获得小米.快手.领英.Tencent等offer,因疫情爆发无法准时入职,20年3月份春招成 ...

  6. 20届春秋招数据分析面筋分享

    更新: 秋招拿到了4个小公司:深农商.闪银奇异.中移动信息技术和中邮消费金融 秋招签了深农商,后来毁了三方 春招拿到了猿辅导,已签 ---------------------------------- ...

  7. win7招不到网络计算机,分享:一招了却G41 Win7下的遗憾

    G41定位于入门级平台,用户群数量庞大.而笔者最近接连收到不少朋友及同事反映,使用G41主板,安装windows 7蓝屏会均会遇到蓝屏的现象.笔者起初认为是个别情况,或诸如内容兼容之类问题所造成.但他 ...

  8. 历经两个月的秋招,结束了,谈谈春秋招中一些重要的知识点吧(本科+后台+腾讯)

    历经两个月的秋招总算是结束了,从七月份开始复习秋招相关知识,到八月多开始笔试.面试,到九月下旬的秋招结束,在笔试面试的这两个月里,还是挺累的.这篇文章就说说秋招这段时间的收获以及给对于明年要参加秋招的 ...

  9. 表格锁定表头不动_Excel教程:你有没有被表头难过?分享几招搞定(下)

    今天接上期,继续分享表头制作. 一.重复表头 有时候我们会用到重复表头,比如HR要打印工资条给员工时候,如果一行一行插入空白行再复制再粘贴,太慢太繁琐.下面分享一下简单的好办法. 方法:第一步:在表格 ...

最新文章

  1. Postgresql在Windows下的解压安装
  2. C语言试题十七之用来求数组的最大元素在数组中的下标并存放在k所指的储存单元中
  3. oracle sql 输出,将数据从Oracle SQL Developer导出到Excel .xlsx
  4. 简单dfs序 + 树链剖分
  5. 边城高级中学2021届高考成绩查询,边城高级中学举行2021届高三学生成人礼暨高考誓师大会...
  6. org.apache.ibatis.builder.BuilderException: An invalid property ‘jdbcType ‘ was found in mapping
  7. 人工智能 (特征数据提取)
  8. 【唐宇迪】神经网络原理解读与整体架构
  9. MOOC 研究生学术与职业素养 课后答案
  10. Drools4.0官方使用手册中文
  11. Ps快捷键及基础知识
  12. win10自带输入法变为繁体字
  13. 旋转Kubernetes中的秘密
  14. 【分享】郝斌老师C语言 教程 1 到 180课
  15. 新浪微博授权失败,redirect_url与应用注册的网址不一致
  16. 360°全方位解析C语言的三目运算符
  17. 2023前端大厂面试题之JavaScript篇(4)
  18. chatgpt中的强化学习 PPO
  19. JSON.parse() 和 JSON.stringify()
  20. 浅谈对软件企业OEM的理解

热门文章

  1. 警用宽窄带融合技术国际学术交流会成功召开
  2. 9大“抠门”富豪揭密
  3. 【参考】bike+需求影响
  4. 《现代职业教育》期刊简介及投稿要求
  5. 黑金花大理石_黑金花测评,黑金花大理石简介, 黑金花大理石分类,黑金花拼花_齐家网...
  6. 记录百度地图使用中遇到的问题
  7. 山东大学单片机原理与应用实验 3.2 拓展并行I/O口实验
  8. 比较清晰的求马鞍点方法,不过浪费空间时间。
  9. Android安卓应用发布平台汇总
  10. 第七章:函数实训【寒假作业】