0
点赞
收藏
分享

微信扫一扫

关于opencv中cv2.imread函数读取的图像shape问题

北冥有一鲲 2023-07-05 阅读 46
golang面试

golang大厂面试

滴滴

写个二分查找

自我介绍

挑一个项目具体说下

怎么理解“不要用共享内存来通信,而是用通信来共享内存”

用过什么缓存?

redis是单线程还是多线程?

redis作为单线程,是怎么支持高并发的?

对内存操作更深入的了解过吗?

有没有想过内存操作为什么很快?

redis内存操作很快?有没有IO读写

IO读写什么时候会发生?

IO什么时候会做写入?

redis写入通信协议是什么?

redis写入操作IO操作快是因为异步

用go协程的时候也是要走IO的,go是如何处理的?

IO多路复用有看过吗?

redis的数据结构了解哪些?深入说下内部实现

跳表是一种什么结构?

扩展类型说下

hyperloglog详细说下

数据库用过哪些?

数据库引擎用什么?

怎么理解ACID这个概念

innoDB支持事务,他为什么支持事务?

看过B树B+树这些数据结构吗?理解不理解这些树的构造,是要解决什么问题?

说下对docker的理解,是解决什么问题的?

工作的时候用过什么消息中间件?

版本控制用的什么?平时是怎么学习的?

自我介绍

你个人更偏好业务方向和基础架构方向?

挑一个对你来说有挑战的项目,说下其中的难点,是怎么解决的?

用redis在服务里面解决什么样的问题?

nodejs和go是基于什么样的考虑是用这两种语言的?

限制用户评论过去一个小时内只能评论三次,用redis实现?

mysql的存储引擎了解哪些?

mysql索引用过哪些?

了解过聚簇索引和非聚簇索引吗?

覆盖查询和回表查询了解吗?

分析sql性能好坏如何分析?

explain里面其他字段关注过吗?type字段关注过吗?

B+树和哈希索引区别是什么?

锁的类型用过哪些

什么叫悲观锁、什么叫乐观锁

乐观锁如何保证最终一致性?

事务的基本特性?解释一下

事务隔离级别有哪些?解释一下

分库分表分区有哪些差别?

分表遇到联表查询怎么分页?

shardingjdbc如何实现分页查询的?其内部偏移如何实现的?

除了用jdbc和中间件方式之外,分库分表下联表查询还有别的解决方案吗?

nginx用过吗?

大致了解nginx的哪些功能?

nginx的负载均衡是在第几层?

除了nginx的负载均衡还了解过其他负载均衡吗?

反向代理和正向代理有什么差别吗?

linux熟悉吗?

如何统计nginx日志里面的访问量最多的十个IP地址?

es用过吗?使用过哪些功能?

了解其内部实现吗?

es写入数据如何保证两边数据一致性,两边数据同时写入会越来越大?自我介绍

对新的机会主要看哪些方面?

挑一个个人感觉比较满意,存在技术挑战的事情,说一下细节

在基础架构服务稳定性方面有什么总结吗?

如何保证服务高并发的?

细节的优化点有哪些?

golang垃圾回收机制了解吗?

mysql主键索引和非主键索引在搜索和检索过程中有什么区别吗?

事务的隔离级别有哪些?

脏读幻读说一下

mysql如何实现事务的?

mysql主从同步过程了解吗?

分库分表常用模式

一开始一个项目数据比较多,后来需要分库分表,有什么思路在不停服务的情况下做到平滑切换?

设计一个短链接服务

学而思

自我介绍

在第一家公司主要做些什么?

后端核心开发的项目是什么?

权限系统如何做?

接口权限如何做?

在线消息服务讲下

如何避免redis故障

日志监控怎么做的?如何设计的?

写入ES想过如何降低压力吗?

火焰图怎么来寻找瓶颈的?

gpm模型

如何实现一个线程安全的map

创建一个数组底层扩容

make一个slice参数怎么写?

mysql的索引结构对b+树了解吗?

什么会影响联合索引查询效率

用栈实现队列

用栈能实现双向队列吗?

主要做哪些基础架构工作呢?

网易

自我介绍

未来的主要方向

介绍下之前的项目用到的优化点、难点

为什么不要大量使用goroutine

gpm模型

go里面goroutine创建数量有限制吗?

线程和协程有什么区别

golang支持哪些并发机制

go利用channel通信的方式

有缓冲和无缓冲channel的区别

channel实现原理

被close的channel会有什么问题

分布式锁知道哪些?用channel如何实现?

集群用channel如何实现分布式锁

并行goroutine如何实现

go用共享内存的方式实现并发如何保证安全?

go的锁是可重入的吗?

获取不到锁会一直等待吗?

那如何实现一个timeout的锁?

go切片是如何实现的

主要用redis实现哪些功能

缓存穿透如何解决

常用限流算法

令牌桶和漏桶有什么区别

不同服务之间通信有哪些方式

一次rpc要经过哪些过程rpc框架如何做性能调优

用过哪些rpc框架

说下熔断、限流、降级、雪崩

熔断降级知道哪些开源框架吗?

docker和虚拟机有什么区别

serviceMash用来解决什么问题的?

devops相关技术有哪些

美团

自我介绍

监控软件用的什么?

为什么没用开源监控软件

现在的监控体系是什么流程?

为什么没用logstash?

非递归方式实现前序遍历二叉树

腾讯

算法lru

项目相关

go语言如何实现服务不重启热部署

go性能分析工具

tcp如何实现稳定性

http和http2区别

https如何实现的,证书是怎么获取的?

如何实现分布式锁

gpm模型

为什么gpm模型会更快?

线程协程区别

redis如何做到高可用

redis故障转移策略

kafka如何做到高可用mysql事务的隔离级别

格步科技

自我介绍

用k8s主要做哪些功能?

链表和数组的区别,以及各种操作上的复杂度

谈下对散列表的理解,深入

对lru算法了解吗?在上面场景下使用呢?

说下你知道的排序算法

说下快排的大概的操作过程

快排的平均的时间复杂度

快排什么情况下是最慢的?

常用的数据库有哪些?

mysql的事务四个特性

mysql事务的隔离级别,分别解决了什么问题?

一条sql语句比较慢用什么方式去优化?

从浏览器上输入一个网址到浏览器加载内容,中间过程中发生了哪些事情?尽可能说知道的

nginx负载均衡策略

服务器上有大量time_wait状态,如何分析一下为什么会这样?

算法:一个奇怪的没听明白的问题

算法:括号匹配问题,说下思路

知乎

实现一个函数,有两个参数分别是升序的整数数组a和b,返回合并后的升序整数数组

待优化SQL

```

SELECTa,b,c,dFROMtb

WHEREc=4

ORDERBYa,b

索引

(c)待优化SQL

SELECTa,b,c,dFROMtb

WHEREa=9ANDc=4

ORDERBYa,b

索引

(a,c)

待优化SQL

SELECTa,b,c,dFROMtb

WHEREb=9ANDa>4

ORDERBYa,b

索引

(a,b)

```

说下项目

视频是如何做的?

展开讲下技术点和收获

知道mysqlinnodb是什么数据结构吗?

用基础数据结构实现一个map

map会遇到一些并发安全的问题,为什么就并发不安全了?

为什么给变量一个基础类型没有并发安全问题?

如何解决这个问题?

rpc底层实现

是如何做到和本地调用一样的?

rpc服务是如何找到其他目标服务的?

redis数据结构有哪些?

了解redis数据结构底层实现吗?

跳表是怎样的数据结构

为什么跳表查询复杂度很低

redis应用场景还有哪些?

http restful的定义规范

常见的http状态码

golang介绍下gmp模型

自我介绍说一个觉得不错的项目

说一下项目的业务场景

命令的时间差如何保证,命令混乱了怎么办(时间戳记录在服务器可以吗?)

最近在学习什么?

你个人最近感兴趣的点是什么?

docker是解决什么问题?

k8s是解决什么问题?

为什么现在考虑换工作

你想找什么样新的工作?

下一份工作看重什么?

如果说你现在定一个目标三到五年之后想要成为什么样子?

技术和业务方面的要求是什么?

如果让你选择只做技术和只做业务你选择哪个?

网易

自我介绍

有挑战性的项目介绍下

项目优化点说一下

tcp和udp有什么区别,在基础时间和传输层有什么区别

http和tcp有什么区别

用操作系统接口写过网络接口客户端

linux一般常用哪些命令

用netstat看tcp连接的时候有关注过time_wait和close_wait吗?

fork的底层实现方式

redis如何实现事务

复杂一点的条件,比如说判断一个数字大于多少如何实现事务?

如果要从redis里面删除大量的数据要怎么做?

list里面有大量数据,删除大量数据要注意什么

go语言的时候垃圾回收,写代码的时候如何减少小对象分配

string和byte数组有什么区别?

channel有缓冲和无缓冲在使用上有什么区别?

关闭channel有什么作用?

如果一个包要依赖另一个包,这个时候如何写单元测试知道浮点数在机器上面怎么存储的

用go实现一个协程池,大概用什么实现

lru如何实现

反问:

这是交叉面试吗?

传媒部这边主要负责网易那块儿业务

技术部这边是往go这边切吗?

往go这边切的原因是什么?

百度

自我介绍

详细说下公司里面大的系统遇到的技术难点

消息转发用的什么技术

线上流量多大?

为什么不用一些更稳定的消息队列

go里面为什么需要多协程?

知道processor大小是多少吗?

goroutine为什么会存在,为什么不使用线程?

算法:二维矩阵顺时针原地旋转90度

算法:找出字符串中不包含重复子串的最大长度

redis的存储结构?

redis单线程为什么快?

k8s里面调度的关键步骤

猿辅导

自我介绍

说一下代表你技术能力的项目

你在项目里面的职责是什么?

cicd devops做了什么说一下

redis这边做了什么?个人对mysql和redis细节了解吗?

redis的string是怎么存储的?

了解过redis的存储方式吗?

系统日志监控怎么做的?

已经上了k8s为什么不用推荐的开源体系?

有没有什么我没有问到你想说的技术点

算法:实现lru,不考虑线程安全,可以使用所有标准库

解释下你写的算法

算法:两个数组,求两个数组的交集

为什么map是O(1)的时间复杂度

实现map的方法除了哈希还有哪些?

高德

自我介绍

选一个比较熟悉的项目讲讲

筛选日志的时候,日志格式是不一样的,你们是如何处理的?

处理日志的时候如果日志量比较大会堆积吗?怎么处理的?

日志落盘到机器上,是如何采集的?

采集服务有问题的话可能会影响报警的及时性吗?

处理日志的时候如果发现突然量变大,该如何扩容让以前堆积的日志可以消耗掉?

调研的正则库内部是怎么实现的?

go里面比较成熟的日志框架了解过没有

redis发布订阅怎么实现的?你自己要怎么实现?

redis高可用怎么做?

了解redis主从复制机制吗?

分布式锁有哪些实现方式

redis的setnx底层怎么实现的?

go协程线程进程区别

详细讲下gmp模型

了解的gc算法有哪些?

go的gc原理了解吗?

go的init函数是什么时候执行的?

多个init函数执行顺序能保证吗?gin框架的路由是怎么处理的?

mysql索引结构

B+树和B树有什么区别

快排

新浪

自我介绍

挑一个项目介绍下亮点和难点

说下websocket是哪一层协议?

osti层

常见http状态码

各种项目问题

进程阻塞怎么处理?就是进程完全不运行了,但是pid还在

CICD主要做了什么?

用火焰图的优势?

cgo了解过引入的风险点吗?

为什么不要频繁创建和停止goroutine

channel底层是用什么实现的?

数据库加密算法是怎么设计的?设计这种东西通用规范是怎么设计的?

在第一个公司为什么离开了

时间同步问题?

ntp协议

小米

自我介绍

算法:二分查找

sql索引优化问题

mysql数据库引擎

tcp三次握手四次挥手

项目用redis的原因

go的切片扩容机制linux里面线程和进程的区别

go使用中遇到的问题

一个update语句的执行过程

websocket请求头

消息队列这些用过吗?

微服务注册发现说一下

说一下从浏览器按下一个搜索的完整过程

gomap的底层实现

说一下同步阻塞和异步非阻塞

go的profile工具?

字节

自我介绍

for range 坑 输出

gmp模型

遇到过什么语法问题

对比下node和go

为什么用redis没有用成熟的kafka这些消息队列

redis的基础数据结构和底层实现

网关层限流,限流策略

消息重试,消息幂等问题

实现一个Promise.all

go实现一个并发限制爬虫

自我介绍

服务需要做迁移的原因是什么?

迁移主要写哪些服务?

自己做的定制化功能相对于开源的有哪些优势?

用过哪些开源的配置中心?

定时任务是一个什么场景?日志扫描和处理怎么做的?

日志采集有哪些开源方案看过吗?

前端这边接触哪些?

前端这边用什么什么框架知道吗?

nodejs什么场景下用的?

给自己未来发展的定位是什么?

从技术角度讲对自己的要求是什么?

服务打日志的时候涉及过哪些中间件?

借助第三方自己产出的中间件有哪些?

参数检查中间件核心功能有哪些?

业务的npm包有哪些例子吗?

cicd做了哪些?

es存储日志的时长是多久?

es数据有做一些聚合吗?

说说火焰图?如何分析的?

写一个东西:一个字符串json,转成一个直接可用的map,字符串可能是任何形式

算法题:给一个字符串,从里面找到最长的回文字符串(先说思路)

挑一个比较突出的技术成就聊一下

websocket的稳定性是如何做的?

海外机器的延迟如何保证

为什么会选用websocket?

websocket兼容性是如何做的?

兼容性如何保证的?

如果现在选型的话会如何选?

能对比一下websocket、长连接、EventSource的优缺点吗

在前端如何处理websocket兼容性问题?

如何去设计兼容这一层?

你对前端这边了解到什么程度?

js原型链原型继承了解吗?

js变量提升作用域问题?

算法题:n*n的矩阵,按圈顺时针打印这个矩阵

写完之后做一些testcase,把需要的case都列一下

好未来

自我介绍

说一个项目的架构

go主要用搜框架

对go的中间件和工作机制有了解吗?

对数据库操作有什么了解吗

对连接池有了解吗?

go的垃圾回收机制

gmp模型

go的sync.Map了解吗

channel主要做什么事情

数据库这块儿mysql用的多吗?

存储引擎了解哪些?

对mysql索引了解哪些

redis的过期策略是什么?

微服务这边用到哪些?

算法:两个无序数组找到他们的交集

算法:分层遍历二叉树

常见的http状态码

tcp和udp区别

tcp三次握手四次挥手

业务迭代遇到过晚上上线的事情吗?

上线的时候业务中断有什么方式去规避吗?

k8spod切换策略

自我介绍

做过的项目说一下

怎么检查go问题

未来技术方向怎么选

gmp模型

切片的底层实现

go和node的差别自我介绍

k8s如何找到一个节点上的所有pod

如何通过goclient写代码获取

日志监控怎么做的?

dockerfile

cmd和entrypoint有什么区别

项目里面有自己独立负责的吗?

说下在线教室

如何保证连接的均衡?不至于所有连接连到一个地方?

调研的ocr识别是做什么?

做个题,看下这个这么写有什么问题

写个channel相关的题,并发模型,爬虫url,控制并发量

context包内部如何实现的?

自我介绍

你在第一家公司服务的用户是谁?

素质教育还是应试教育?

你在里面用技术解决什么问题?

这里面有什么你觉得做得比较好的项目?

视频用的什么服务?

信令用wss还是ws?

调度哪个用户连接哪个机器?

如果业务量大,如何让客户端能够均衡的连接服务器

wss是基于tcp的,tcp有个半连接队列,有没有遇到发了信令但是服务器没收到的情况?

自习和用户增长?

题拍拍主要做拍搜服务的,题拍拍主要做增长,后面会做微服务架构k8s等

考虑问题的时候从用户角度去考虑?用户是谁?为谁服务?

自我介绍

devops是怎么做的?

会保留一些tag、镜像之类的东西吗?

服务的属性配置用的什么?

docker是怎么做隔离的?

docker和宿主机有几种网络通信方式

k8s和pod什么关系?

k8s定义了什么标准来操纵dockerk8s有几种service类型

报警这边怎么做的?  

为什么没有用ELK

go怎么实现封装继承多态

为什么go的变量申请类型是为了什么?

京东面经

先简单做个自我介绍: 本⼈是⼯作多年的⼀枚'⽼码农',对⽐群⾥的年轻朋友们,是有

点'⽼'哈,最近⼯作是在⼀家视频⾏业的互联⽹公司⼯作6年以上。大家可能觉得,这个时期出

来看机会,是往⽕坑⾥跳吗?

个⼈不这么认为,借此疫情的特殊时期,通过企业市场招聘情况也能帮你把握⼀下⼤致业务发展

⽅向,这其实是好事。

当然了,招聘岗位有限,狼多⾁少,岗位竞争肯定⽐往年更加激烈的,所以需要珍惜每⼀个机

会。

⽐如在新浪的⼀位朋友也很缺⼈,内部还在商讨,少量HC还没有正式放开...本次薪资涨幅还算

满意,具体就不便透露了。在谈薪资⽅⾯,如果你能提前拿到其他公司Offer,且你之前Base还

可以,那么还是容易谈的。

⾯试结果: 京东、美团⾯试已通过。具体定级对标P7上下这样⼦吧,个⼈理解是资深、专家

岗,因为进去也基本都是⼲活的,带⼈与否看情况。

⾯试流程: 京东、美团多个部⻔都是并⾏⾯试的,这个没有正式谈薪前都是没问题的。

京东:三 / 四⾯技术 + HRBP

美团:四⾯技术 + HRBP + 专职HR

个⼈感受美团HR专业性、与候选⼈沟通⽅⾯体验相对更好些,因招⼈旺季,HR也都很忙。 HR

职责也会细分,联系协调⾯试的有专⻔的HR、技术⾯过会HRBP⾯试,最后都通过确定职级,

然后会有专职HR谈薪资。

⽽京东HR...,这⽅⾯相对美团吐槽也更多⼀点⼉,所以后⾯同学去引起注意即可,如果你是

「不确定」的候选⼈,各种情况可能都会遇到,⼤家知道就好。

京东⾯面试过程总结

⾯试方式:电话⾯试,他们都不露脸呀!好处是不⽤⼿撸代码了。

京东物流:三轮或四轮技术⾯

通常⼀或⼆⾯是研发同学(即未来跟你⼀起⼯作的同事)、⼆或三⾯(架构师T7或T8,要给你

定级的)、三或四⾯(部⻔负责⼈,也会有技术⾯)。你的定级是在最后两⾯综合来确定的。

京东⼀或⼆⾯

因为⼀⾯或⼆⾯都是研发同学。 基本都是常⻅的⼀些⾯试题,也不会很深,群⾥同学肯定都

会。个⼈在部⻔内曾推⼴过 Apollo 配置中⼼,⾯试官也会让你说出实现原理。 京东内部应该是

不使⽤ Dubbo 的,他们的RPC框架叫做「

JSF」,内部实现机制 应该是跟 Dubbo 很像。 所以 京东⾯试官要问RPC,基本都问到 Dubbo 实现原理,内部扩展机制等等,肯定不会问 JSF

了,也没开源。

京东架构师⾯

项⽬问的很详细,说的我很累~ 基本每个项⽬具体实现⽅案、亮点都讲了⼀下,遇到的问题。

具体技术⾯:

1. JVM & GC 1)你们JVM线上使⽤的什么垃圾回收算法?CMS、G1

2. 详细说⼀下CMS垃圾回收算法回收过程?4个阶段

3. CMS中的remark阶段⽐较慢,怎么分析和解决?

XX: +CMSScavengeBeforeRemark Remark前提前来⼀次YGC;增加CMS回收的线程数...

1. 线上如何来分析GC问题?

2. JVM线上是如何调优的?

3. 1.7和1.8中jvm内存结构的区别?

4. 发⽣Full GC时会回收Metaspace空间内存吗?

数据库

1. 锁等待问题如何处理?⼀个事务中调⽤了本地事务,还调⽤了RPC接⼝? 我说这⾥涉及了

分布式事务了,他说不⽤,把RPC接⼝调⽤放在最后⾯...然⽽实际逻辑并不⼀定都这样的...

他应该是想问出现死锁、间隙锁问题应该如何来处理,说了下死锁的解决思路,没有太get

到点上。

2. 缓存 & ⾼并发 1)⾼并发下缓存与数据库⼀致性如何保证? 2)⾼并发情况下扣减库存如

何处理?如何优化?参考⽯杉架构笔记⾥的⽂章 3)当队列满了,核⼼线程空闲、扩展线程

也空闲,谁从队列⾥获取?

3. JUC 1)为什么线程池⾥要先创建coreSize⼤⼩的核⼼线程?2)线程池中的各个参数的含

义解释⼀下?

4. 框架 & 源码 1)SpringCloud和RPC具体都有哪些区别? 2)SpringCloud中遇到过哪些

坑,具体降级了Eureka注册中⼼的坑。 3)最近⼀分钟上报的次数计算错误,bug 4)⾃我保

护机制,剔除Down掉服务器并不是90秒,也是个bug,⾄少180秒以上。

5. 算法题 1)编程珠玑⾥的⼀道题:⼀个40亿的⽆序数字,请找出不存在的数字 2)⼀个很⼤

的List,⾥⾯都是int类型,如何实现加和?因为电⾯,就说了⼀下思路

京东四⾯部⻔领导

1. 介绍下项⽬的亮点,有成就感的项⽬

2. JVM相关深⼊ 1)深⼊探讨了CMS、GC Roots,跨代是如何进⾏GC的?有点发散,提到了

GC Roots Tracing,Rset、Card Table 2)ParallelScavenge了解吗,什么算法?实际是

复制算法【⽼年代可以搭配Serial Old或者Parallel Old】 3)为什么不能和CMS⼀起使⽤

呢??后来听说这个负责⼈jvm源码他都看过,研究很深。

3. MySQL索引如何做优化的? 1)假设有⼀个表字段⼏⼗个,索引如何创建的?所有字段都

能建吗?区分度、选择性、列基数 2)MySQL为什么是B + 树的结构,为什么不能是红⿊树

呢?优化的是什么,优化的是磁盘IO,减少磁盘寻址。

4. MQ队列⽤了哪些,Kafka,那⾦融场景下,Kafka如何保证消息不丢失?ack = -1,

Leader-->ISR写⼊所有的follower 5、Redis⽤过哪些数据结构?zset底层是什么结构,

hash和跳表,为什么是跳表,查找效率⾼。

5. 其他 1)⾃身优缺点? 2)⼀句话总结下⾃⼰? 3)对待加班的看法?

美团面经1

美团A部⻔门⾯面试过程汇总

⾯试⽅式: ⽜客⽹视频链接,因为可以⼿撸代码 ⼀般职级越⾼,技术⾯试轮次越多。

3-1以下应该是三轮技术⾯。

3-1通常四轮技术⾯,⼀、⼆轮技术和项⽬负责⼈⾯,三、四轮是交叉⾯或部⻔领导

⾯,五⾯是HRBP,六⾯专职HR谈薪⽔。

收到offer后接受开始背调,⼀般需要5个⼯作⽇背调结果给到公司,联系⼈及⼯作时间

必须准确⽆误。

3-2以上据⾄少五轮技术⾯,没这待遇啊。⼤体这样,当然每个部⻔安排顺序不⼀定相

同。因为是两个部⻔都做了⾯试,⾯试官⻛格也不⼤⼀样。

【美团A部门一面技术】

1. JVM如何优化的?CMS算法执⾏流程?什么情况下发⽣的Full GC?

2. 分布式事务讲⼀下?结合项⽬想讲的可靠消息⼀致性实现⽅案 + 最⼤努⼒送达通知

⽅案,最后也提到了单应⽤多DB(

JPA)、TCC事务以及适⽤场景。

3. ES是如何调优的?副本机制作⽤?写⼊doc操作执⾏过程?

4. 其他也都是基础问题,印象不是很深刻了。

【美团A部门二面技术】

1. 将最近做的两个项⽬详细讲解 + 现场画出整体系统架构图并结合架构图讲解+ 设计

模式类图 我是拿了⼀张纸,画出来然后对着电脑屏幕开讲,这⾯试画⻛可以想象⼀

下哈,⾯试官隔着屏幕看。

2. 因聊的项⽬时间⽐较⻓,也因为电脑快没电了,所以接下来⼏道技术题他出完我很

快回答出来了。

3. MySQL数据库底层实现结构?B+树结构,也讲了数据⻚,以及⻚⽬录相关的

4. Spring Bean循环依赖如何解决的? 5 .MyBatis⼆级缓存如何实现的?

5. 有个项⽬⽤的分布式缓存是CouchBase,要求讲下CouchBase基本原理?

6. RabbitMQ如何保证⾼可⽤的?queue数据在节点之间如何同步的?死信队列 如何实

现的?

技术回答的很快,最后丢⼀句「等HR电话」,我是有点懵逼,难道都该聊到hr ⾯了,

这不才2⾯技术⾯么。 因为电脑⻢上没电了,没有多问,已经聊了⼀个半⼩时了。 后来

才知道,是等HR电话通知我约下⼀个⾯试官啊。。。果然是好久没⾯试 了^_^ 【美团A部门三面技术】

讲解了项⽬的从客户端到后端的具体流程。主要问了⼀些扩展技术⾯,⽐如Http2都有

哪些改进的?Redis最新特性了解哪些?等等吧,总体也不是很难的。

【美团A部门四面技术】

1. ⾃我介绍、介绍具体项⽬突出贡献

2. 离职原因?业务⽅向如何考虑的? 职业规划?

3. ⾼并发与性能的关系?根据项⽬经验⾃有发挥吧,但尽量还是答案宏观⼀点。

4. 缓存和数据库⼀致性如何保证的?谈到了分布式锁,那详细讲讲分布式锁实现?

redis setnx、redisson、zookeeper

5. 项⽬架构中如何做技术选型?

6. 有什么要问我的吗?

【美团A部门五⾯面HRBP】

1. 为什么要离职,基于什么原因考虑的?

2. 你的未来职业规划是什么样的?项⽬中的⻆⾊是什么样的?

3. 你认为⾃⼰还有哪些需要提升的吗?

4. 你在团队中的绩效如何?

5. 有什么需要问我的吗?

美团面经2

美团B部⻔门⾯面试过程汇总

【美团B部门一⾯ 技术】

1. JVM中的CMS和G1垃圾回收算法具体区别?

2. 问了两道线程池相关问题,觉得没啥问题了 此时,话锋⼀转,咱们聊聊中间件相关

吧 【后来听说,⼈家是有个⾯试⼩模板^+^ 】

接下来开始问中间件相关:

1. Dubbo 1.1 说⼀下Dubbo的具体执⾏流程,涉及哪些模块,作⽤? 1.2 使⽤过过

Dubbo哪些特性,做过哪些扩展?Dubbo⾥的泛化有了解过吗? 1.3 Dubbo中的注

册中⼼Zookeeper是如何注册上去的?

2. Zookeeper 2.1 Zookeeper节点有哪⼏种类型(临时、持久)? 2.2 如何注册的,

如何选举的(选举算法?), 2.3 如何完成监听或者说是订阅的? 2.4 提到了分布

式锁,在Curator框架中是如何实现的,watch机制本地数据结构啥样的?

3. Redis 3.1 都⽤过哪些数据类型?分别介绍下使⽤场景? 3.2 持久化机制,AOF、

RDB具体区别有哪些? 3.3 Redis 主从同步机制是怎么样的,⽐如slave启动之后同

步过程? 3.4 Redis Cluster集群如何选主的? 3.5 Redis Cluster 跟哨兵模式有什

么区别吗? 3.6 Sentinel 哨兵模式是如何选主的?这⾥说跟cluster差不多,追问了

下,其实还是有些区别的, sdown odown 主观宕机、客观宕机⽅式不太⼀样

4. Kafka 4.1 ⽣产端是如何发送⼀条消息到Broker的? 4.2 具体可以调整哪些参数提

升吞吐量? 4.3 消费端发⽣rebalance的过程是怎样的?⽐如有⼀个新的consumer

加⼊ 到了Group中是个什么流程?

5. ⼿写算法 算法题:⼀个链表,输⼊k,⽐如k=3,翻转前3个链表值

【美团B部门二⾯技术】

1. 都是发散探讨性的题⽬⽐如⽤过CouchBase,那你觉得CouchBase有哪些不⾜的地

⽅,哪些不够专注的?谈到专注,我也提到了Redis不够专注,因为Redis5.0还提供

了Stream作为持久化队列解决⽅案,Redis应该更专注分布式缓存这块,反⽽野⼼

也很⼤,还要⽀持类似MQ的功能,并且也参考了Kafka设计思想,所以也不够专

注。

2. ⼿写多线程题⽬:T1线程输出都是A,T2线程输出的都是B,T3线程输出的都是C要

求三个线程启动后输出顺序:ABCABCABC

技术⼆⾯⽼哥是清华的,京东项⽬负责⼈也是清华的,他们两个⾯都有⼀个共同特点,

就是题⽬都是⽐较发散的,就是跟你来探讨技术以及实现,由浅⼊深,看看你是如何思

考的,为什么这么来设计?有没有什么更好的解决⽅案? 【美团B部门三⾯ 技术】

部⻔总监⾯,主要聊项⽬,也聊到了Reactor模式。因为已确定去另外⼀个部⻔,没有

安排交叉⾯,或者已经有过交叉⾯了,如果决定去这个部⻔也不⼀定会再重新安排了,

交叉⾯⾯试官也不是很好约⾯的,其主要作⽤就是把把关⽽已,其决定作⽤的还是本部

⻔的⾯试。

腾讯PHP/GO工程师面试经历

一面是技术面,用的腾讯会议,开局自我介绍之后就开始做题。题目不算难,都非常考验基础扎不扎

实。面试官特别喜欢就一个问题深入去问,直到你卡壳。

第一题是非常经典的,从浏览器敲下地址到页面呈现出来,中间发生了什么事情,越详细越好。

主要是说说 TCP 三次握手,四次挥手,详细的状态转换,以及 time_wait 状态存在的意义,滑动窗口也

要说一说。以及 nginx php-fpm 是怎么通信的, fast-cgi 对比 cgi 有啥改进。

第二题是 JS 的浮点数和 async await 的题目。

浮点数在计算机是怎么表示的,这个要答全一点 .async await 都是随便答一答,只要中规中矩就过

关,没有深入追问。

第三题是 Vue nextTick 的原理。

第四题是 go channel 相关的题目,读代码写出执行结果。

第五题是 go defer 顺序问题,读代码写出执行结果。

第六题是 go slice 的相关原理。

第七题是 php-fpm 进程数量过多,如何优化的问题

第八题是 php 内存泄露如何排查,处理的问题

第九题是 GPM 模型的原理,以及 GO 不同版本的 GC 算法原理

第十题是 mysql 分表分库问题,及正在运行的业务中,数据表修改字段如何避免锁表导致业务不可用的

问题。

第十一题是 redis 相关的,分布式锁,延迟队列,跳表的一些问题

第十二题是数据结构相关的,有向图的连通性问题,要手写代码。 除了面试题,一面还就你简历上你写的技能做了一些问答,还问了些项目相关的东西。

一面过了之后,二面就跑去深圳面,是组长和组员一起面,问了些项目相关的问题再聊聊人生,我没把

细节答好,就没下文了,想想还是可惜。

总结起来,一面的范围相当广,从 php go js mysql reids nginx mq 。也有一定的深度,但

总体不算难。二面主要面项目经验,如果没做过大项目,就非常吃亏。

腾讯面经

一面

算法题二选一

https://leetcode-cn.com/problems/permutations/

https://leetcode-cn.com/problems/sorted-merge-lcci/

MySQL 隔离级别

MySQL 锁

MySQL 存储结构(

b+树)

索引 回表 是什么

消息队列,rabbitmq

rabbitmq 如何保证可靠性(生产者可靠性、消费者可靠性、存储可靠性)

rabbitmq 几种模式

es 索引的过程

线上是如何分表分库的,用什么做分表分库的策略,跨表查询

MySQL 如何同步到 es

线上 Redis 用的是什么模式

缓存热 key 怎么办

二面

介绍项目

defer 、go 继承,手写快排

登录流程,JWT、session、cookie

三面

缓存一致性

Redis key 统计

Redis 单线程,io 多路复用

算法题 https://www.nowcoder.com/practice/35119064d0224c35ab1ab612bff

ee8df

Redis slowlog 原理

四面(面委)

项目为主

tcp quick_ack 、 nodelay ,socket 编程 职业规划

为什么换工作

五面(GM)

项目

go 协程机制

腾讯云、京东云面经

个人情况

毕业两年,北京某在线教育,技术氛围不错。主要语言栈golang、python,主要技术方

向是k8s、容器、云计算。有服务上云的实践经历,了解cicd基本流程,求知意向是容

器研发、基础架构研发、运维研发之类的(主要还是研发方向)。

已面试公司

快手、字节、小米、金山云、完美世界、京东云、百度、西安腾讯云。 快手二面卒,字

节一面卒(面了两次,约了第三次二面过了拒了三面),小米二面卒,金山云感觉聊的

挺好的一面卒,完美世界offer,京东云现场面offer,百度一面卒,西安腾讯云offer。

面试前期准备很重要!!!准备充分面试时感受会好很多。千万别裸面!!!

简单说一下面试的基本问题吧(主要还是偏向基础)

项目方向:

项目的话我不多说什么,就是自己的项目细节自己肯定清楚,如果项目中不是自己做的

部分,建议不要在简历上写太多,写清楚自己做了什么,容易被抠细节问,项目一般都

会抠细节,特别细的那种!!!

语言栈:

因为我主要语言栈是go,所以一般都比较少问python。

golang

1、gin框架路由怎么实现的,具体正则怎么匹配?限流中间件怎么实现? 2、go的slice

与数组的区别,slice的实现原理,源码? 3、golang的协程调度,gpm模型。协程调度

过程中的锁。 4、golang的channel实现,channel有缓存和无缓存,一般会直接撸码

(三个goroutine顺序打印)。 5、golang的关键字defer、recover、pannic之类的实现

原理。 6、sync包里面的锁、原子操作、waitgroup之类的。 7、make和new的区别,

引用类型和非引用类型,值传递之类的。

python

1、python多线程、多进程。 2、python的装饰器怎么实现的?

操作系统: 1、进程、线程、协程间的区别以及他们间的切换之类的,有时候会问到语言级别的协

程。 2、io复用、用户态/内核态转换 3、awk命令 4、linux查看端口占用 5、top命

令,free命令中的各个参数表示什么,buff/cache都表示什么?

k8s & 容器:

1、简单聊一下什么是云原生、什么是k8s、容器,容器与虚机相比优势。 2、k8s组

件,pod创建的过程,operator是什么? 3、docker是怎么实现的,底层基石

namespace和cgroup。 4、k8s的workload类型,使用场景,statefulset你们是怎么用

的? 5、limit和request,探针,一般怎么排查pod问题,查看上次失败的pod日志。

6、sidecar是什么,怎么实现的? 7、pv,pvc,动态pv怎么实现 8、k8s的声明式api

怎么实现的,informar源码。 9、cicd,发布模式。 10、svc的负载均衡、服务发现,

ipvs与iptables。 以上基本是会被问的点(虽然有一些问题我也不是很熟),另外很多

会被问k8s的网络之类的,因为我比较菜,这块被问的比较少。

计算机网络:

1、tcp三次握手四次挥手,为什么不能是两次握手,三次挥手?握手和挥手过程中的状

态。 2、time_wait作用,为什么是2msl,close_wait作用,time_wait过多怎么办?

3、http请求的过程,浏览器输入网址请求过程?dns解析的详细过程? 4、https与http

的区别,https第一次服务端回传是否加密? 5、tcp与udp区别,tcp怎么保证可靠性。

6、http请求头、分隔符、长连接怎么实现

数据库:

1、mysql的事务,事务使用场景。 2、mysql的索引,什么情况下索引失效,聚簇索引

与非聚簇索引,索引的存储b+树与b-树区别。 3、join的内外连接,最左匹配原则。

4、redis的数据结构,hmap怎么实现的,持久化怎么做,go操作redis的方式。 数据库

方向有被问到,我基本没答上来(一般都告诉他只会基础,开发直接使用gorm)。

数据结构与算法:

1、倒排索引和B+树 2、判断链表是否有环,时间复杂度要求0(1) 3、LeetCode上合并

区间的题 4、leetcode的股票买卖的题 5、二叉树的最近公共祖先 6、有序数组合并

7、什么是平衡二叉树、最小堆 8、大文件的top10问题 9、golang实现栈、队列

其他:

1、git 的相关操作,合并commit,合并之类的。 2、场景设计(比较多)

小米面经1

一面

1. innodb MVCC实现

2. b+树是怎么组织数据的,数据的顺序一定是从左到右递增的么

3. 页分裂伪代码,b+树的倒数底层层可以页分裂么

4. 合并k个有序链表

5. redis的hashtable是怎么扩容的

6. select poll epoll,epoll具体是怎么实现的

7. GMP是怎么调度,channel是怎么收发消息的,channel的recq和g是怎么建立关系的

8. innodb二次写是什么

9. undo里面具体存的是什么

10. b+树节点具体存的是什么

11. mysql一页最大能存多少数据

12. myisam和innodb索引上的区别

13. innodb commit之前,redo 的prepare然后binlog commit,然后redo再commit有

什么缺点?5.6之后是怎么优化的?

14. redo和binlog的区别

15. 读锁和写锁区别

二面

1. 蛇形打印二叉树

2. myisam为什么不支持事务,如果要支持事务要怎么做

3. 函数只能返回1-7的随机数,请用这个函数返回1-5,要求平均

4. 聊项目

三面

1. go的协程调度和os的线程调度有什么区别

2. 只有写锁实现读写锁

3. go的调度是怎么实现的

4. go的网络IO为什么快?还有优化空间么

5. epoll为什么这么快,还有优化空间么?如果要你实现一个网络IO应该怎么实现

6. 设计一个每秒80万qps的过滤器

7. 过滤器用redis实现,宕机期间数据怎么恢复

8. 设计一个下单 扣减库存的分布式应用,请求超时了怎么办,一直重试超时了怎么办

9. 数组A1 2和数组B2 3是一个关系圈,A能通过2找到3,数组A1 2和数组B2 3和数组

C 3 5也是一个关系圈,给一个二维数组求关系数

小米游戏面经

一、 介绍连接池项目

1. 介绍连接池常用的参数,最大连接数,最小存活数这些意义,为什么要有这些

2. 当链接超过最大连接数怎么处理,等待有空闲连接还是创建一个继续给出,比较两

者的优劣

3. 连接池清理链接的逻辑,如何优化的

4. 当连接池中有一些链接不可用了怎么办,如何保证这些连接的可用

5. 当出现下游某个实例挂掉了,连接池应该怎么处理

6. 对比 mysql redis http 连接池的实现

二、 介绍负载均衡算法

7. 介绍平滑负载均衡算法,实现

8. 当出现下游出现不可用,负载均衡算法怎么处理

三、 介绍聊天室项目

9. 介绍实现原理的,互相通信的逻辑

10. 聊天室服务端如何把消息下发给用户

11. 介绍websocket包的字段

12. 当有用户掉线怎么处理 ###四、 redis相关

13. redis的数据结构

14. 各个数据结构的操作( 这个忘了,不会… )

15. 各个数据结构的使用场景

16. 如何保证 Redis 的高可用

17. 当有一个key读取的频率非常高怎么办 ( 这个也是不会)

五、 算法相关

18. 介绍快速排序 优先队列的实现 ( 没有答好 )

字节面经

一面

自我介绍

算法题:

1. https://leetcode-cn.com/problems/find-peak-element/

2. https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/

3. https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/

索引,倒排索引,切词,如何根据 doc id 有没有出现某个 token

服务高可用是怎么做的

MySQL 可重复读、读提交区别、原理

爬虫 URL 去重,设计存储结构(

FST,前缀树+后缀树)

MySQL (a,b,c) 索引,几条 SQL 走索引的情况

思考题:概率 p 生成 0,1-p 生成 1,如何 1/2 概率生成 1

二面

算法题:

1. https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/

2. https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/

3. https://leetcode-cn.com/problems/coin-change-2/

讲一下 es 索引的过程

切词怎么切,切词算法,降噪

让你带应届生,怎么带,有什么工程经验可以分享

Redis 缓存淘汰有哪些

三面

自我介绍

算法题:

1. https://leetcode-cn.com/problems/first-missing-positive/

文章下面的评论,按点赞数排序,SQL 怎么写

把所有评论放到内存里,怎么设计数据结构,存储并排序

select * 会有什么问题

缓存热 key 怎么解决

职业发展

领导如何评价你

项目难点,亮点

举报

相关推荐

0 条评论