网易游戏测开和java,2019网易游戏测试开发实习电话面试总结

主要分为三次考核来记录html

在线笔试

此次一共五道题,前三道题很简单,后面两道暂时没想到怎么作。可是老是有一些case过不去,因此费了不少时间,印象最深的是寻找最长的回文子串,这个很明显要使用DP去作,可是却告诉我内存超出限制,我也没想到其余的方法了,也许该题的本意就是直接暴力寻找。node

整体来讲,感受还不错,至少能够经过50%的case,mysql

第一次电话面试:技术面试

一共两位面试官。linux

首先是出了两道编程题

1)反转二叉树:直接递归DFS便可

2)给定五张扑克牌,大小王是通用牌,判断是不是顺子:直接寻找最长连续子串便可

编程题是经过在线共享文档来描述的,属于很简单的问题web

要写一个较为详细的伪代码,而后面试官又让写一下第二道题的测试用例,我起初想的有点复杂,因此总结了全部的状况,可是根据面试官的反应来看,这道题是十分的简单的问题,不须要想那么的发展,都怪我我当时没意识到。面试

接下来是计算机基础知识的考察,

因为我研究生的科研方向是软件工程,因此计算机网络的基本知识还能够,那么就有如下的问题。算法

TCP和UDP的联系和区别

1.基于链接与无链接;

2.对系统资源的要求(TCP较多,UDP少);

3.UDP程序结构较简单;

4.流模式与数据报模式 ;

5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。

tcp协议和udp协议的差异

TCP UDP

是否链接 面向链接 面向非链接

传输可靠性 可靠 不可靠

应用场合 传输大量数据 少许数据

速度 慢 快

请你设计一个可靠的UDP协议应该怎么作

简单说TCP保证了传输的准确性和相应的流量控制,而UDP不提供任何准确性保证。既然TCP提供这么多完备的方案,为何还要大费周章地去设计RUDP呢,这里主要愿意能够用两个字归纳“速度”,TCP提供了过多的保护,在及时性上作了不少的妥协,好比:控制微包(Nagle算法),延时ACK,流量控制,超时重传等,这些设计严重影响了Tcp的速度和及时性。编程

帧同步中的UDP帧同步方案中逻辑帧通常都在8~16帧左右,通常都在12帧以上,这要的网络传输频率决定了不可能采用TCP协议,那么若是采用UDP会出现什么问题呢?服务器

1.丢包,帧同步中逻辑帧在每一个Client上必定是一致的,也就是说决定不能出现丢帧的状况,

2.数据完整性,UDP协议头部虽然有16位的校验和,可是IPv4并不强制执行,也就是说UDP没法抱枕数据的完整性

3.乱序。 UDP并不保证数据的顺序,故可能出现数据包乱序问题

以上问题任何一项都会致使Client在逻辑帧上出现不一样步问题,为了解决这个问题就必须引入RUDP概念,这里的RUDP主要是解决上述的问题,并不某个RFC定义的规范。

RUDP初步简单思路,既然原生UDP有那么多痛点,那我能不能像应用层协议同样在UDP数据包头再加一段包头,从而定义为RUDP呢,答案是确定的。首先思考RUDP须要解决哪些问题,而后根据问题加上必要的包头字段。

1.数据完整性 –> 加上一个16或者32位的CRC验证字段

2.乱序 –> 加上一个数据包序列号SEQ

3.丢包 –> 须要确认和重传机制,就是和Tcp相似的Ack机制

在思考一下既然是自定义协议是否是须要一个协议号字段来过滤一些非法包,那么又能够加入一个新字段:

4.协议字段 –> protol 字段,标识当前使用协议

综合以上字段,咱们的RUDP就能够简单实现成以下:

a4a5138562b3763bf530a1808e84248f.png

微信是使用TCP仍是UDP

微信通信中使用了HTTP短链接和TCP长链接,并无用到UDP,其中登录验证和头像身份信息及日志等功能采用的HTTP,文本消息、语音消息、视频消息、图片消息这些使用的是TCP长链接。经过心跳包来维护长链接状态,300S一个心跳。

微信是一直保持的和服务器tcp链接吗?

微信心跳包是300s一次,google原生的通常是1680s,缘由是运营商移动网关会释放tcp端口,tcp协议通常是10几分钟会换掉,udp端口资源更加紧缺,最好一分钟内一个心跳包,不然很容易断开,服务器也就不能推送信息了

接下来是操做系统基本知识

进程和线程的联系和区别

进程是表示资源分配的基本单位,线程是进程中执行运算的最小单位,

进程和线程的关系

(1)一个线程只能属于一个进程,而一个进程能够有多个线程,但至少有一个线程。线程是操做系统可识别的最小执行和调度单位。

(2)资源分配给进程,同一进程的全部线程共享该进程的全部资源。 同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储)。可是每一个线程拥有本身的栈段,栈段又叫运行时段,用来存放全部局部变量和临时变量。

(3)处理机分给线程,即真正在处理机上运行的是线程。

(4)线程在执行过程当中,须要协做同步。不一样进程的线程间要利用消息通讯的办法实现同步。

而后问到我作得PLFF Solver用到多线程仍是多进程?

我使用的是CUDA的SIMT,固然是多线程,

而后是临界区和信号量

临界区:指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片断,而这些共用资源又没法同时被多个线程访问的特性

信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,是能够用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段以前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第一个线程释放信号量。为了完成这个过程,须要建立一个信号量VI,而后将Acquire Semaphore VI以及Release Semaphore VI分别放置在每一个关键代码段的首末端。确认这些信号量VI引用的是初始建立的信号量

Linux ls -al

ls -al

查看文件信息

drwx------+ 9 zyu staff 306 8 19 21:15 Pictures

drwxr-xr-x+ 6 zyu staff 204 3 30 22:09 Public

第一列:文件的类型与权限

第一个字母表明文件类型:d目录,-文件,l连接文件,b设备文件里的可供存储的接口设备,c表示设备文件里的串行端口设备,如键盘鼠标等一次性读取设备

接下来三个一组,第一组为文件全部者权限,第二组为同用户组的权限,第三组为其余非本用户组的权限

第二列:有多少文件名链接到此节点(i-node)

每一个文件都会将它的权限与属性记录到文件系统的i-node中,不过咱们使用的目录树倒是使用文件名来记录,所以每一个文件名就会链接到一个i-node,这个属性记录的就是有多少不一样的文件名链接到相同的一个i-node号码

第三列:全部者帐号

第四列:文件所属用户组

第五列:容量大小,默认单位B

第六列:建立或最近修改日期

第七列:文件名

关于linux权限等级参考这个博客Linux设置文件读写权限

长连接如何转化为短连接

正确的原理就是经过发号策略,给每个过来的长地址,发一个号便可,小型系统直接用mysql的自增索引就搞定了。若是是大型应用,能够考虑各类分布式key-value系统作发号器。不停的自增就好了。第一个使用这个服务的人获得的短地址是http://xx.xx/0 第二个是 http://xx.xx/1 第11个是 http://xx.xx/a 第依次日后,至关于实现了一个62进制的自增字段便可。

最后讲一下单例模式,解释一下

总结来讲,感受不太好,操做系统和计算机基础知识还没来得及复习,因此这些问题都说的很大

第二次电话面试:HR面试

这一轮面试就在扯淡了

首先是自我介绍,谈了我本身的项目,

如何理解软件测试?

测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据须要编写不一样的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,须要跟踪故障,以确保开发的产品适合需求。

总的来讲,网易的HR面试主要是问一些项目的管理、我的性格、我的和团体的合做态度、遇到问题应该怎么作等等基本问题,没有涉及到太多的专业知识

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值