微信支付凉经
前言
感觉微信支付是养鱼比较严重的部门...而且面试还巨累,面试官态度也比较差...面试体验不太行吧。分享点面试经验供uu们参考
一面
做题环节(45分钟)
机器32位
char* s = "hello world'
int a = 10;
sizeof(s) = ? szieof(a) = ?
int c = 10;
void*p = &c;
sizeof(p) = ?
void func(char s[100]) {
sizeof(s) = ?
}
static变量和普通变量的区别?
然后是是一道看代码写输出,全是C的风格。。。忘了题目什么样子了
编程题
- char* strstr(const char*s1, const char*s2)
- 手写hash表,支持增加、删除、查找操作,要求用链表实现
- 大根堆,支持弹出操作
面试环节
八股...
- static关键字
- const关键字, 修改const怎么办。
- extern关键字
- 怎么避免头文件冲突
- vector如何扩容
- 内存对齐,为什么要内存对齐
- 网络字节序?大小端?
- 知道堆和栈的区别吗?
- 进程之间的通信方式。
- tcp/ip三次握手,四次挥手?画图
- 出现大量wait_time怎么办?
- 长连接和短链接的区别?什么时候用长连接什么时候用短链接?
- udp/tcp区别,每个协议的优缺点?什么用udp,什么用tcp的呢
- 非阻塞的server如何实现?(select/epoll/poll?)没反应过来
- 让你写一个线程池,你会先考虑什么问题呢?互斥除了锁还有什么其他的实现方式吗?
反问环节:
问:CPP开发跟平常java/golang开发写起来有什么区别吗?也是要设计restful接口,通过orm写curd写接口什么的吗
面试官:如果工具链一样的话,写起来没什么区别,你知道rpc吗?让你设计一个rpc,你会怎么设计?
我:先把谷歌的编码协议protobuf抄过来,balabala
评价:总共面试时间1个半小时,基本都是最基础的八股。。没问简历上的项目,也没深入追问这些问题。
二面
介绍项目(项目跟分布式有关,跟面试官介绍了raft,好像后端没几个面试官懂raft的
面试官设计了一个场景,节点挂了怎么监控得到,怎么把这个信息同步到集群中的节点,这些节点如何做出反应?请求突然猛增怎么办?
请求执行时间怎么衡量,怎么根据请求计算的时间不同,尽量平均到所有的机器上?
有些是I/O密集型任务、有些是cpu密集型任务,如果每天下午的时候cpu密集型任务占用的时间比较多,其他时间I/O任务时间多,你怎么设计一个动态调度算法?
机器对请求很久都没反应,你怎么排查,想到观察哪些指标?
面试官好像不是很理解我的项目,然后就变成了他出题,代入到了一个他很熟悉的场景我不熟悉的场景,所以很多答不上来...面着面着气势就输了,然后面试官就主动结束了,秒挂(50min)
以后面试还是要自信点hhh