灵犀互娱服务端实习-一面
编程语言
===
C++和Go的区别点?答了垃圾回收、面向对象/函数式区别
C++如何实现面向对象?答了封装、继承、多态
C++智能指针有用过吗?智能指针解决了什么问题?项目开发中有使用过吗?
C++ STL有用过吗?答了vector, list, stack, map
STL vector有了解底层实现吗?答:简单了解没看过源码
map和unordered_map的区别?哪些场景使用?答的不是很好
C++学下来,觉得哪一块比较吃力、难以理解?答了指针、模板,这个上次就被问过了,答的仍然不是很好
遇到难得点如何克服的?答:查CppReference和问AI
课程外对C++有了解吗?答:没有(最唐的一集,自己都尴尬死了)
课程C++的教材是哪一本?答:忘记了
C++中内存模型了解吗?答:栈变量和堆变量的区别(还有全局变量、局部变量、函数参数都没答,面试官不是很满意)
堆上申请的内存,如何防止忘记释放?答:引用计数垃圾回收
面试官继续引导,如何封装,实现在一个函数内使用new关键字申请一块内存,退出函数时自动回收?
了解RAII吗?不太了解
C++的析构函数你知道吗?知道
如果有这个提示,你能想到刚刚那个方法吗?还是没想不出来。。。
C++中子类继承了父类,子类释放的时候析构函数调用顺序是怎样的?先子类后父类,终于答出来一个。
从面试官了解到除了C++也有一部分Go开发的,这下真的要学习Go了
操作系统
===
进程、线程、协程的区别? 答出来了,还讲了go routine也是协程,但是自己不了解Go,真的恨当时没好好学Go
进程间通信方式? 答:管道、共享内存、消息队列、信号、Socket
有名管道和无名管道区别?一开始没想出来,后面回忆起来了一点
这些通信方式中,哪些通信效率最高?共享内存,因为零拷贝
在项目中有用到Socket吗?答:没用到这么底层的接口
线程如何防止出现并发问题?答:加锁
乐观锁和悲观锁有了解吗?答的不清楚,面试官不太满意
C++线程创建的API是什么?太久没用C++写多线程,忘记了
跨机器进程如何同步?超卖场景? 前几天面美团就被问到了,没去看,今天又被问到了!
工具、中间件
===
git merge和git rebase区别?
Serverless架构?介绍了一个项目中使用华为云函数的情况,讲了无服务的优点(无状态、可扩展性强、无需手动运维)
Redis了解吗?答:了解
Redis常用数据类型?答出来了
Redis源码有读过吗?正中我下怀,可惜最近才刚开始读Redis源码,就和面试官介绍了Redis中字符串的实现(SDS),其他一些源码还不会(面试完下定决心继续啃Redis源码)
面试官都笑了,看Redis源码只看String实现是什么人呀?为什么不多看一点?
网络编程有过吗?
IO多路复用了解吗?答:单线程轮询fd set,是一种并发的方式,还和刚才答的Redis联系起来,说Redis就是通过IO多路复用并发
epoll和select有什么区别?答:具体接口不了解,只知道概念
面试官好奇:我不太了解接口怎么做多路复用
(面试官沉默)
项目
===
面试官怀疑我的项目业务代码不多,于是反问他理解的业务代码意思
Docker了解吗?答:结合项目的部署讲了一下Docker的使用
问了其中一个项目代码量多大?答:没统计过(我当时应该直接共享屏幕给他看的,可惜了)
一个项目中用户管理是怎么存的?答:用户基本信息存一张表,密码存一张表
面试官质疑我密码明文存储?答:项目中是明文存储,生产上肯定不能,需要加密
Kafka在项目中的应用?答:结合项目讲了一下Kafka异步处理过程
Redis缓存在项目中的应用?答:结合项目答
问了一些别的项目
算法
===
没有手写代码,口头描述思路:
有100亿个url,现在给定一个url,需要判断是否在其中,怎么高效实现?答:字符串Hash
如何解决碰撞问题
闲聊
===
平时游戏玩得多吗?
为什么要投游戏后端开发岗位?
为什么不投游戏前端岗位?
反问
===
组里开发用的技术栈
觉得有什么需要提升的地方:建议学习注重深度,不要只浮于表面
自评
===
面试没有上次那么紧张了,但是还是存在深度不够的问题,希望有机会进二面吧,进不了也没事,学到了很多东西,继续加油沉淀!
===
第二天约二面
===
C++和Go的区别点?答了垃圾回收、面向对象/函数式区别
C++如何实现面向对象?答了封装、继承、多态
C++智能指针有用过吗?智能指针解决了什么问题?项目开发中有使用过吗?
C++ STL有用过吗?答了vector, list, stack, map
STL vector有了解底层实现吗?答:简单了解没看过源码
map和unordered_map的区别?哪些场景使用?答的不是很好
C++学下来,觉得哪一块比较吃力、难以理解?答了指针、模板,这个上次就被问过了,答的仍然不是很好
遇到难得点如何克服的?答:查CppReference和问AI
课程外对C++有了解吗?答:没有(最唐的一集,自己都尴尬死了)
课程C++的教材是哪一本?答:忘记了
C++中内存模型了解吗?答:栈变量和堆变量的区别(还有全局变量、局部变量、函数参数都没答,面试官不是很满意)
堆上申请的内存,如何防止忘记释放?答:引用计数垃圾回收
面试官继续引导,如何封装,实现在一个函数内使用new关键字申请一块内存,退出函数时自动回收?
了解RAII吗?不太了解
C++的析构函数你知道吗?知道
如果有这个提示,你能想到刚刚那个方法吗?还是没想不出来。。。
C++中子类继承了父类,子类释放的时候析构函数调用顺序是怎样的?先子类后父类,终于答出来一个。
从面试官了解到除了C++也有一部分Go开发的,这下真的要学习Go了
操作系统
===
进程、线程、协程的区别? 答出来了,还讲了go routine也是协程,但是自己不了解Go,真的恨当时没好好学Go
进程间通信方式? 答:管道、共享内存、消息队列、信号、Socket
有名管道和无名管道区别?一开始没想出来,后面回忆起来了一点
这些通信方式中,哪些通信效率最高?共享内存,因为零拷贝
在项目中有用到Socket吗?答:没用到这么底层的接口
线程如何防止出现并发问题?答:加锁
乐观锁和悲观锁有了解吗?答的不清楚,面试官不太满意
C++线程创建的API是什么?太久没用C++写多线程,忘记了
跨机器进程如何同步?超卖场景? 前几天面美团就被问到了,没去看,今天又被问到了!
工具、中间件
===
git merge和git rebase区别?
Serverless架构?介绍了一个项目中使用华为云函数的情况,讲了无服务的优点(无状态、可扩展性强、无需手动运维)
Redis了解吗?答:了解
Redis常用数据类型?答出来了
Redis源码有读过吗?正中我下怀,可惜最近才刚开始读Redis源码,就和面试官介绍了Redis中字符串的实现(SDS),其他一些源码还不会(面试完下定决心继续啃Redis源码)
面试官都笑了,看Redis源码只看String实现是什么人呀?为什么不多看一点?
网络编程有过吗?
IO多路复用了解吗?答:单线程轮询fd set,是一种并发的方式,还和刚才答的Redis联系起来,说Redis就是通过IO多路复用并发
epoll和select有什么区别?答:具体接口不了解,只知道概念
面试官好奇:我不太了解接口怎么做多路复用
(面试官沉默)
项目
===
面试官怀疑我的项目业务代码不多,于是反问他理解的业务代码意思
Docker了解吗?答:结合项目的部署讲了一下Docker的使用
问了其中一个项目代码量多大?答:没统计过(我当时应该直接共享屏幕给他看的,可惜了)
一个项目中用户管理是怎么存的?答:用户基本信息存一张表,密码存一张表
面试官质疑我密码明文存储?答:项目中是明文存储,生产上肯定不能,需要加密
Kafka在项目中的应用?答:结合项目讲了一下Kafka异步处理过程
Redis缓存在项目中的应用?答:结合项目答
问了一些别的项目
算法
===
没有手写代码,口头描述思路:
有100亿个url,现在给定一个url,需要判断是否在其中,怎么高效实现?答:字符串Hash
如何解决碰撞问题
闲聊
===
平时游戏玩得多吗?
为什么要投游戏后端开发岗位?
为什么不投游戏前端岗位?
反问
===
组里开发用的技术栈
觉得有什么需要提升的地方:建议学习注重深度,不要只浮于表面
自评
===
面试没有上次那么紧张了,但是还是存在深度不够的问题,希望有机会进二面吧,进不了也没事,学到了很多东西,继续加油沉淀!
===
第二天约二面
全部评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享