微信后台开发社招面经
因为我参加工作前走的一套Java技术栈,然后参加的工作岗位是C++后台开发,工作不到一年,所以C++研究并没有那么深入,直接莽了wxg,通过内推锁定了微信后台,就收到了面试邀约,效率非常高。
初试
自我介绍
项目介绍
手写算法
- 反转链表(多写几种解法)
- 二叉搜索树插入新节点
口述算法
- 随机0,1产生均等的随机(0,n)
C++
- malloc和 new的区别,失败会返回什么
- 继承的底层原理
- 运行时多态和编译时多态
- 析构函数不加virtual会发生什么,原理。
- 线程的堆栈,全局静态变量,哪些对象共享内存
- extern 关键字(听成了Java的 extend)
计算机网络
- TCP建立和释放
- TCP滑动窗口,是否动态可变,用来干嘛(拥塞控制)
- 五层模型
- TCP在哪层,arp干什么的,在哪层,路由器在哪层,交换机哪层。
- 给出两个子网IP,是否走交换机,经过哪些。
操作系统
- 进程和线程的区别
- 进程通信方式,哪种最快
- 僵尸进程
数据库
- mysql有哪些引擎
- innoDB和MyISAM的区别
总结
一面聊了1个小时34分,顺利通过,一面比较偏向基础,因为以前是主内Java的,回去发现有一些C++的一些细节回答错了,反问面试官哪方面欠缺,也说基础可以加强一下。
二面
自我介绍
才工作了不到一年,为什么想跳槽。
项目介绍
项目中遇到的难题,怎么解决的(说了之前分布式事务存在的问题,用本地消息表改进)
为什么用本地消息表,为什么不将事务直接发给消息队列
分布式如何实现全局唯一ID
Ping原理,在哪一层
浏览器输入网址到页面展示经过的过程
http可以复用同一个TCP连接吗
可以UDP实现吗
算法设计题
- LFU缓存设计实现PUT和GET
反问
哪些方面欠缺?(总体上挺好的,觉得挺好的)
怎么加强基础,可以多看一些源码底层吗?(回归课本再扩展)
第二天收到通知:未通过
全部评论
(7) 回帖