秋招总结(含面经),字节——新的开始
本人情况:本科985软件,硕士美国TOP30 CS,本科以课程开发较多,截止到2016年。2016年起,从未参与相对大一点的开发工作,主要尝试学术工作。
因家庭原因临时起意毕业回国工作,时间紧任务重,突击一个多月,边复习基础和算法,边笔试面试。秋招前期和傻子一样,后期渐入佳境(秋招也结束了)。
投递的为后端开发和java开发岗位(我java今年8月才学),且只去北京,所以综合所有的个人情况,我的秋招比我的学历看起来要艰难得多。
公司 | 结果情况 |
腾讯 ,图森未来,猿辅导,网易有道,阿里优酷 | 一面挂 |
360 | 笔试时间在飞机上,错过 |
华为2012中硬 | 待业务主管面 |
贝壳,京东 | 无法到场面试,拒了 |
字节跳动后端 | 二面挂 |
字节跳动Android | offer,准备去贡献力量了 |
小米互联网 | 提前批二面挂,正式批二面错过,offer... |
用友 | offer(啥都没问) |
商汤,智加科技 | 简历挂 |
美团打车 | 三面挂 |
滴滴,小红书,搜狗,同程艺龙,第四范式,作业帮,映客,搜狐,爱奇艺,微软,度小满,小马,百度 | 无信息更新 |
面经总结
猿辅导服务端一面:
1. 自我介绍
2. 讲一个简历上的项目, 为什么用MongoDB而不是MySQL?
3. TCP三次握手过程?四次挥手过程?time_wait的作用?时间是多长?
4. HTTP请求报文都有什么?HTTP的请求方法有什么?PUT和POST有什么区别?
5. 进程线程的区别?
6. 怎么知道死锁了?死锁的必要条件?
7. 链表和数组有什么区别,插入删除的区别(因为我没说到这点)
8. B树和B+树有什么区别
7. 算法:二叉搜索树转有序双向链表,自己写一个用例跑跑我看看!
(这么简单的算法,面试时候看着他真的是大脑一片空白,一个字写不出来,提示一点写一点😂😂😂)
(话说用leetcode刷题只是实现算法,真的从大白板开始写,输入输出,构建个树,还真是蒙)
第一个面试,啥都没复习,所以都不会……
网易有道一面:
- C++ 的gc
- python装饰器
- get和post
- 两个算法:忘了
当时没总结,都忘了。
第二个面试,所以也啥都不会……
腾讯提前批一面:
1. 自我介绍
2. 算法:找到树里两节点的最近公共祖先节点(leetcode 236)
3. 算法:给一个array是新的排序方式,把另一个array里面的字符串按此排序
两个算法都是秒解,然而挂了,玄学,不知道为什么。
小米一面:
- 10万个数选前200大的数字
- KMP算法
- 数组元素整体循环移动
- 链表有环
- 计算机网络几层,都什么
- Http请求报文
- Http请求方法,GET和POST区别
- MySQL索引类型
- B+树为什么叶节点要连起来
- Varchar(32)和char(32)区别
- Java final
- 抽象类和接口
- Char大小,char = ‘中’存的下么
小米二面:
算错了时差错过了,还给了offer,也不知道为啥。
美团一面:
- 项目
- OS: 进程线程?线程占用资源么?都什么?临界资源?属于进程还是线程?用什么操作临界区?进程通信的方法?进程同步的方法?页面分页和分段?
- 网络:TCP和UDP全称?区别特点?用什么实现TCP可靠?UDP不可靠为什么还用?什么情况用UDP?什么协议用UDP?怎么流量控制?为什么滑动窗口可以?访问一个网站的过程?
- Java基础(因为我是Java新手,以前不用Java,所以考的Java比较简单):重写?重载?多态?写一个多态。
- 算法:动态消除相邻相同的数([0,1,2,3,3,2,1,0,4] -> [4])和Leetcode 124
- 闲聊国内互联网形势
美团二面:
- 项目(遇到的困难和引申思考比较多)
- (又由于我是Java新手)我们且国内大多数后台都是Java,你怎么学Java?都需要学什么?最近在看什么?
- Oracle和MySQL区别?
- 滑动窗口和拥塞窗口?有什么用?慢启动与拥塞避免的过程?
- 数据库隔离级别?MySQL默认隔离级别?处理不了什么问题?什么是幻读?
- 算法思考:服务器有很多IP访问,几个T,文件存不下了,现在让你挑出来访问次数最多的10个IP地址?(Divide and Conquer, Hash % n)
- 算法:打印一个菱形
美团三面:
- 出国感想
- 有研究方向么
- 喜欢看书么,看什么书
- 了解什么中间件么
- 国内互联网公司都用什么语言栈?为什么有的是Java,有的是Go
- 想到啥聊啥
和三面面试官三观不合吧,让我不遗憾的是,它是美团打车……
阿里优酷一面:
- 自我介绍
- 你常用的数据结构?排序算法?时间复杂度?稳定性?
- 如何验证XML合法性?
- 计算机网络分几层?都是什么?
- TCP在哪层?这层还有什么其他协议?TCP UDP区别?都应用在什么上?
- TCP可靠有连接,那他还需要心跳机制么?长连接、短连接区别?各自如何实现?
- TCP断开过程?必须要由客户端断开么?HTTP是谁来断开的?
- TCP断开,出现大量的CLOSE_WAIT怎么了?
- Cookie和Session的区别?Session是怎么验证是来自同一个浏览器的?如果不需要登录呢?
- 数据库隔离级别?分别解决了什么问题?MySQL默认什么级别?
- MySQL索引都有什么?为什么用B+树做索引?聚簇索引和普通索引什么区别?
感觉下来,阿里问的很细,确实有一些东西以前没仔细揣摩过。
图森未来一面:
- 算法:最大区间和
- 算法:最大不相邻两个子区间和
两个算法秒解,和腾讯一样,给我挂了,玄学,不知道为啥。
字节跳动后端一面:
- 自我介绍
- netty锁
- 访问网站的过程
- TCP连接和断开的过程?如果服务器和客户端一起断开怎么办?CLOSE_WAIT, TIME_WAIT作用?
- Cookie和Session的区别
- 数据库隔离级别
- InnoDB默认什么级别?如何处理幻读?Next-key Locking怎么实现的?什么是幻读?
- 为什么用B+树,搜索时间复杂度?
- 什么样的要添加索引?索引使用条件?
- Leetcode 33(此处对面试官已无力吐槽,这种都进了宇宙条,只能说他赶上了好时候)
字节跳动后端二面:
- 自我介绍
- 算法:最大区间和
- 算法:最大不相邻两个子区间和
- C++ map和unordered_map区别
- C++ 析构函数为什么是虚函数?
- 你知道什么设计模式?
- Cpython GIL是什么,特性,有什么用
- Http长连接和短连接的区别,长连接靠什么设置
- 输入一个URL到渲染到页面的整个过程
- HTTPS如何保证安全?SSL整个过程?
- 数据库隔离级别?都能处理什么问题?什么是幻读?
- B+树索引和哈希索引的区别?哈希索引的“自适应性”可控么?
- linux fork()是什么?有什么特性?
问的太杂了,一个多月确实是复习不了那么全,平时的积累不在开发……唉,遗憾。最想拿的offer,没拿到。
字节跳动客户端一面:
- 线程池,各自有什么参数
- hashcode()作用, 为什么hashcode相等不一定equals
- equals () 和==
- synchronize 和 static synchronize区别,可以同时用么
- Synchronize和volatile
- throwable俩分支
- 设计模式
- 垃圾收集算法?双亲委派?堆栈?
- 深浅拷贝原理(基本,引用)
- 四种引用
- 算法:每k个翻转一次链表(e.g. K = 3: 12345678->32165487)
字节跳动客户端二面:
- OSI七层
- TCP/UDP
- 应用层有什么协议
- 输入域名到渲染的全过程
- HTTP可以用UDP吗,HTTP都知道什么版本,不同是什么
- HTTPS过程,怎么加密的,对称加密算法
- 进程线程,进程通信方式,管道种类
- 算法:topK
字节跳动客户端三面:
- 算法:删除list中的所有target
- 项目,挑战,解决方式
- 算法:非递减数组,找到第一个target的位置,若无,返回-1
- 为什么不去算法岗?(面试官认为我一二三面的算法秒解,就让我去算法岗……然而并不喜欢算法岗,就算想去,看今年形势也进不去……)
华为2012中硬一面:
- 手撸笔试代码
- 算法:字节流第一个不重复字符
- HTTP报文结构?HTTP请求方法?POST请求数据结构?
- HTTPS连接过程
华为2012中硬二面:
- 面向对象一系列问题,多态,重载……
- 设计模式,双重校验锁原理,懒汉饿汉原理,抽象工厂原理,设计原则(开闭,单一)
- SQL的各种join
- 微服务?
- 平时看什么技术网站
- 算法:多项式合并
(总之,特别的应用)
华为业务主管面在下周,到时再更新。