网易雷火工作室服务端开发暑期实习一面
5.8一面,当天晚上收到5.11二面通知
但是我感觉我回答的相当差,一大半都不会,会的题估计都没答对几个,完全不相信自己能过这种感觉
我Java和C++各投了一半吧差不多,本来打算一起准备,然后发现实验室活太多准备不过来了,就先准备Java了
所以我是只背了一些Java八股,C++还没开始背,所以没寄希望能过一面
以下是一面面经:
1. 自我介绍
2. 请问C++,初始化一个对象有哪些方式
不太会,只是浅浅学过
----那我给你看一段代码吧
代码段落里好像有B b; B m(b); B n = b; B c = move(b)????有点记不清了差不多这个意思
我完全看不懂,跟他老老实实说了实话
3. class B{
union{
int a;
byte b;
}
int c;
double d;
}
求cout << sizeof(b)
我不太会,问了下union的含义,简单给他讲了下int和double各占多少个字节,然后他说对齐的问题我没考虑到
4. 你知道.xxx文件吗,一连问了我四种文件格式,我全都没听说过,他说是Linux系统中常见的文件格式
5. 那你知道动态链接和静态链接的区别吗
我也不太会,但是闲扯了一点
他看我确实不太会C++,直接换成计网了:
6. 那就问你点计网的问题吧,你知道tcp吗,tcp粘包问题你听过吗
听过,TCP的算法默认会将多个tcp分组的包一起发送,导致接收方无法分辨不同消息之间的分界
7. 那tcp粘包问题如何解决呢?
发送定长的包?
----这种不够灵活,而且会产生碎片
那就结尾加上标识符?
----这种可能出现正文中的相同标识符干扰
那就包首定义长度?
----这个可以
8. tcp发包的时候,序列号如果溢出了怎么办,比如 0xFFFFF变成了0x000000,怎么说明后一个比前一个大?
加上版本号?比如版本2的0x00>版本1的0xFF?
----那如果版本号也溢出呢?
那就两个版本号交替?0和1交替?
----这个可以
9. 你知道TCP的time to alive吗
关闭连接后的存活时间?
如果服务端一直因为等待超时连接过载怎么办,无法释放连接?
这个我没太听懂
10. 来个经典的吧,www.google.com会发生什么(略)
11. 那网络就到这里,来点操作系统吧,你知道fork吗
创建子进程?
----那你知道子进程和父进程怎么通信吗,他们俩可以共享某些内存吗,这个机制你了解吗
不太了解
12. 如果4G的内存,一个进程可以给他分配8G的虚拟内存吗
这个我不太懂,Java是不需要手动分配内存的
然后问到这里,感觉面试官已经有点无语了,那我问你个代码题吧
class Time{
int timeStamp;
int year;
int month;
int day;
int dayInWeek; #周几
int hour;
int minute;
int second;
}
怎么求两个Time a和b是否在同一周内
一开始我也不会,但在面试官提示下,我用时间戳相减,如果在一周以内(7*24*60*60)并且大的时间dayInWeek大于小的时间,就是True
当晚收到了美团的一面挂的消息,和网易进二面的消息,百味杂陈
美团我认为自己一面答得还不错,结果直接挂了,网易我完全懵逼状态,感觉我是来搞笑的,结果居然过了,看起来面试这东西还真是玄学,可能你面试之前就决定要不要你了,后面就是走个流程吧,可能跟你发挥真的关系不大
#面经##网易面经##暑期实习##C++工程师##软件开发2024笔面经#