只要活着,就不算是悲剧。我们尚在途中,今后仍要继续。——《火花》
戳 -> 校招-面经
我主要用的还是go,虽然语言不是很重要,但投的基本上是跟 go 有关的公司,也有一些c++的公司,想往go发展的可以参考我的面经
春招
春招基本上是过完年回来开始,建议寒假开始复习然后回来就可以找实习了。我春招投的比较晚,后面投的公司不是很多,基本被刷简历,能面试的只有七牛云,然而第一次面试被各种吊打,春招后面去了深圳一家小公司实习了两个月
七牛云
七牛云的技术还是不错的,虽然实习不想去上海(建议实习不要看地点,实习很短不要介意地点)
一面
go的调度
go struct能不能比较
go defer(for defer)
select可以用于什么
context包的用途
client如何实现长连接
主协程如何等其余协程完再操作
slice,len,cap,共享,扩容
map如何顺序读取
实现set
实现消息队列(多生产者,多消费者)
大文件排序
基本排序,哪些是稳定的
http get跟head
http 401,403
http keep-alive
http能不能一次连接多次请求,不等后端返回
tcp与udp区别,udp优点,适用场景
time-wait的作用
数据库如何建索引
孤儿进程,僵尸进程
死锁条件,如何避免
linux命令,查看端口占用,cpu负载,内存占用,如何发送信号给一个进程
git文件版本,使用顺序,merge跟rebase
秋招
实习到八月底就回来参加秋招了,然而还是被吊打,我的秋招一直持续到十一月初,主要还是想找深圳的公司,最终签了字节跳动。
360
360是秋招第一个面试的公司,在实习期间请假面试的,一天基本就面完所有流程,但最终还是进入备胎池(巨深),虽然也不想去北京,但还是点名批评360的备胎池
一面
一面是个小胖小胖的面试官,说我的实习经历挺丰富的(几个校内项目跟一个小公司实习项目),基本上问项目跟场景,中间穿插一些基础知识
讲实习项目的简单业务流程,数据库有水平拆分什么的吗?没有,数据量还没到,然后没啥问的
Slice与数组区别,Slice底层结构
项目里的微信支付这块,在支付完微信通知这里,收到两次微信相同的支付通知,怎么防止重复消费(类似接口的幂等性),说了借助 Redis 或者数据库的事务
项目里的消息推送怎么做的(业务有关)
Go的反射包怎么找到对应的方法(这里忘记怎么问的,直接说不会,只用了DeepEqual,简单讲了DeepEqual)
Redis基本数据结构
Redis的List用过吗?底层怎么实现的?知道但是没用过,不知道怎么实现
Mysql的索引有几种,时间复杂度
InnoDb是表锁还是行锁,为什么(这里答不出来为什么,只说了行锁)
Go的channel(有缓冲和无缓冲)
退出程序时怎么防止channel没有消费完,这里一开始有点没清楚面试官问的,然后说了监听中断信号,做退出前的处理,然后面试官说不是这个意思,然后说发送前先告知长度,长度要是不知道呢?close channel下游会受到0值,可以利用这点(这里也有点跟面试官说不明白)
用过什么消息中间件之类吗?没有
有什么问题吗?评价?后面还有面试,后面再问吧
二面
二面的面试官好像是部门技术总监,面完了加微信,可能需要Go的人,感觉很多不会然后给过了,面完面试官人超好,微信推荐我看书
生产者消费者模式,手写代码(Go直接使用channel实现很简单,还想着面试官会不会不让用channel实现,不用channel的可以使用数组加条件变量),channel缓冲长度怎么决定,怎么控制上游生产速度过快,这里没说出解决方案,只是简单说了channel长度可以与上下游的速度比例成线性关系,面试官说这是一种解决方案
手写循环队列
写的循环队列是不是线程安全,不是,怎么保证线程安全,加锁,效率有点低啊,然后面试官就提醒Go推崇原子操作和channel
写完代码面试官说后面问的问题回答就可以,不知道的话没关系
Linux会不会,只会几个命令,面试官就说一共也就一百多个命令
TimeWait和CloseWait原因
线段树了解吗?不了解,字典树?了解
看过啥源码,nsq(Go的消息中间件),简单问了我里面的waitgroup包证明我看过
sync.Pool用过吗,为什么使用,对象池,避免频繁分配对象(GC有关),那里面的对象是固定的吗?不清楚,没看过这个的源码
有什么问题吗?评价?基础不错,Linux尚缺,Go的理解不够深入,高级数据结构不了解,优点是看源码
后面面试官讲了他们做的东西,主要是广告部分,说日均数据量至少百万以上,多达上亿,高并发使用Go支撑,有微服务,服务治理,说我需要学的东西挺多的
CVTE
CVTE 面的是 C++ 开发,一面就挂了,记的面经不是很多
一面
证明二叉树的叶子节点跟度数为2的节点的关系
唯一索引和主键索引
智能指针
字符串解析为数字(考虑浮点型)
京东
京东本来是现场面的,但运气好,几轮的面试官都允许改成电话面试,岗位是京东云部门的Golang开发工程师,很少有大公司明招golang,面试官说主要做 docker 和跟调度相关。收到offer后给三天的时间考虑,虽然非常想去京东,方向也非常感兴趣,最终还是希望跟女朋友留在深圳就放弃了京东的offer。
一面
其中穿插一小部分扩展,例如单点登录,tcp粘包
项目1
项目2
项目3
手写洗牌
二面
项目1处理粘包断包实现,面试官以为是negle算法有关,解释了下negle跟糊涂窗口综合征有关,然后面试官觉得其他项目是crud就没问了
看什么书?以前看redis设计与实现之类的,现在看 linux 相关
goroutine调度用了什么系统调用,这个不会,面试官想从go问到操作系统,然后以为***作系统基础不好,就问了操作系统问题
进程虚拟空间分布,全局变量放哪里?答上来了,操作系统就不问了
有没有网络编程,有,怎么看连接状态?netstat,有哪些?ESTABLISHED,LISTEN等等,有异常情况吗?TIME_WAIT很多,为什么?大量短链接
介绍部门
HR面
优缺点
小米
小米的面试官喜欢突击,晚上八点多收到小米电话,问什么时候有时间面试,我说都可以,然后说现在?我:???,还是改到其他时间了。二面也是突击,刚想跟小伙伴吃鸡,就打电话直接面试。
一面
解释goroutine,channel
c++ 和 go对比
java和go对比
几种基本 排序 算法说一下,问了堆的时间复杂度,稳定性,为什么不稳定
topk问题,海量数据topk(回答成切分多次加载内存,然后用维持k长度的有序链表,然后被说时间复杂度不好,提示说还是用堆,然后哦哦哦对)
最长连续字串和,这里我说的解决方案没用dp(对dp不熟),面试官一直引导我dp,还是不会
什么是主键
联合索引和唯一索引
越多的索引越好吗?
建立索引要注意什么?
进程和线程区别?
死锁?
tcp三次握手
http,https
状态码401,301,302,201
项目我说只有一台机子,所以用的单机部署,面试官说单机也可以部署多个,有什么方法吗?我说docker,问docker有哪些网络,不熟,dockerfile关键字,只答几个。顺便扯了下nginx转发。
二面
数据库隔离级别,提交读会造成什么
go调度
goroutine泄漏有没有处理,设置timeout,select加定时器
项目
南方基地
南方基地是属于中国移动的,看没有很合适的岗位,就投了云计算与运维工程师
HR面
有什么offer
为什么选择这个岗位
成绩
二面
看成绩
怎么理解云计算
pg和 mysql 区别
mysql高可用的方案
4399
公司主要是 java 、erlang和php
一面
进程线程区别
排序算法以及时间复杂度
怎么学习go
go的线程,给他讲了跟goroutine调度
io模型,同步阻塞,同步非阻塞,异步
cookie和session
HR面
实习项目
优缺点
同学的评价
兴趣爱好
有什么offer
三面
MySQL DECIMAL(M,D) 中M和D是什么
唯一订单号生成的算法问题
欢聚时代
欢聚时代好像是错过广州宣讲会时间了,然后那个时候约我面试是约到湖北现场面试,刚好那个时间段欢聚时代好像在湖北开宣讲会,于是联系好久hr才改到广州现场面试,最后还是凉凉
一面
实习项目
接口kps测试
redis排行榜数据结构(跳跃表),查询时间复杂度
redis分布式,如何减少同步延迟
mysql能实现redis的功能吗
平时怎么学习?
看什么书?
兴趣爱好
看过google四篇分布式论文吗,没看过
cap理论,举例
LRU算法,LFU
讲讲怎么理解网络编程
点触科技
厦门的一家游戏公司,虽然他们服务端基本上是golang
HR技术交叉面
go使用踩过什么坑(for range,数据库连接defer close)
go优缺点
go命令,go get,go tool,go test,go vet
go的值传递和引用
慢查询
为什么使用pg
redis的数据类型
腾讯
腾讯基本上是最想去的公司之一,可惜一面挂了,有些不服。第二道算法给了一种做法,面试官想要另一种做法,在他的提醒下也做出来了,可能c++部分回答不好,而且面试官都是问了解什么什么吗,我都是回答了解,然后没有深入给他讲解
一面
所有左叶子节点的和
m个n大小的有序数组求并集,一开始是2路归并,求时间复杂度,后来在面试官提醒直接m路归并,求时间复杂度
static关键字,还有其他关键字吗
hash表设计,线程安全?
线程自己独享什么
网络编程过程
select、epoll
看什么书
创梦天地
创梦天地的面试难度不是很高,给的薪水也不高
一面
实习项目
项目的微信支付怎么用的
redis用了什么功能(session,排行榜)
排行榜怎么实现
实习用了jenkins吗
除了简历的项目还有其他经历吗
有什么问题吗
二面
redis
笔试题中的场景题
HR面
瞎扯,期望薪资什么的
趣丸
趣丸的面试难度堪比bat,但是薪水偏低了
一面
为什么选pg
go的new和make区别
go怎么从源码编译到二进制文件
go的调度模型
go的锁如何实现,用了什么cpu指令
go的runtime如何实现
看过 sql 的连接池实现吗,没有
最近学什么新技术?c++简单网络库
二面
c++的map和go的map的区别(红黑树和hashtable)
ctx包了解吗?有什么用?
go什么情况下会发生内存泄漏?(他说ctx没有cancel的时候,这个真不知道)
怎么实现协程完美退出?
智力题:1000瓶酒中有1瓶毒酒,10只老鼠,7天后毒性才发作,第8天要卖了,怎么求那瓶毒酒?
简单dp题,n*n矩阵从左上角到右下角有多少种走法(只限往下和往右走)
HR面
瞎扯
映客直播
映客是京东开奖那段时间投的补招,他们公司用的golang也挺多,可惜也是北京,薪水比京东好一点
一面
面经丢失
二面
实习项目
用channel实现定时器?(实际上是两个协程同步)
channel的实现?不了解
go为什么高并发好?讲了go的调度模型
git回滚
看什么书,怎么学习
redis的zset用什么实现,除了跳跃表
操作系统内存管理?进程通讯,为什么共享存储区效率最高
http的状态码
tcp和udp
udp的头部
http和tcp的关系
三面
怎么看一本书?
如果团队有一个人的任务做不完,你也很忙,你会怎么做?
Ucloud
Ucloud是做服务器的,跟七牛云很像,但Ucloud主要是C++,七牛云主要是golang。一面完说通过,约二面,后面说那周深圳的总监没空,调下周,后面没消息,估计凉凉了
一面
实现一个hashmap,解决hash冲突的方法,解决hash倾斜的方法
c++的模板跟go的interface的区别
怎么理解go的interface
100亿个数选top5,小根堆
字节跳动
头条很早就笔试了,A了一道多,刚好赶上补招,给面试,拖了几周担心拖不了就面试了,面试中也有一些不会的,不过三面后加hr微信问过没过,hr说过了,第二天跟我联系,然后就担心没有部门捞(头条三面通过要有部门要才有offer),第二天就谈薪资收到offer了
一面
go代码运行结果(闭包函数)
git和svn区别,模型
唯一订单号问题,并发量高的话怎么解决
hash表设计要注意什么问题
数组和为n的数组对
最大连续子数组和
redis容灾,备份,扩容
跳跃表,为什么使用跳跃表而不使用红黑树
二面
输入url后涉及什么
tcp怎么找到哪个套接字
ipc方式,共享存储区原理
进程虚拟空间布局
进程状态转换
线程的栈在哪里分配
多个线程读,一个线程写一个int32会不会有问题,int64呢(这里面试官后来说了要看数据总线的位数,32位的话写int32没问题,int64就有问题)
判断二叉树是否为满二叉树
lru实现
一个大整数(字符串形式表示的),移动字符求比它大的数中最小的
三面
MVC优点
点赞系统设计
资源
博客
legendtkl:这个大佬写的博客挺有深度,主要也是go,可以看看
基础知识CyC2018:一些面试的基础知识
书籍
高性能mysql
redis设计与实现
Linux/UNIX系统编程手册
Linux高性能服务器编程
UNIX网络编程
UNIX环境高级编程
编程之法:面试和算法心得
剑指offer
图解http(简洁易懂)
TCP/IP详解
点击作者姓名与作者大佬交流~
作者:打代码啦啦啦
来源:牛客网(www.nowcoder.com)
- 互联网名企笔试真题
- 校招求职笔经&面经
- 程序员/产品/运营求职实习信息
- 程序员/产品/运营学习交流社区
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 对陈同学面试问题的自己的回答
- 写给期待年薪百万的IT同学
- 前端同学经常忽视的一个JavaScript面试题
- 一个老同学的故事引发的nodejs 爬虫
- 写给 FE 同学的 Docker 入门指南
- GuiLite 3.4 发布: 没手机的同学,有福了
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Linux内核设计与实现(原书第3版)
Robert Love / 陈莉君、康华 / 机械工业出版社华章公司 / 2011-4-30 / 69.00元
《Linux内核设计与实现(原书第3版)》详细描述了Linux内核的设计与实现。内核代码的编写者、开发者以及程序开发人员都可以通过阅读本书受益,他们可以更好理解操作系统原理,并将其应用在自己的编码中以提高效率和生产率。 《Linux内核设计与实现(原书第3版)》详细描述了Linux内核的主要子系统和特点,包括Linux内核的设计、实现和接口。从理论到实践涵盖了Linux内核的方方面面,可以满......一起来看看 《Linux内核设计与实现(原书第3版)》 这本书的介绍吧!