面试笔试题总结20170510



今天去面试,总结一下的笔试的题目

第一题

问:每3s读取input.txt的内容并打印到控制台中,分别用同步和于异步的方法

答:

1234567891011
const fs = require('fs');const path = require('path');

let contentSync = fs.readFileSync(path.join(__dirname,'input.txt'),'utf8');setInterval(function(){console.log('同步打印的内容:',contentSync)},3000);

//异步fs.readFile(path.join(__dirname,'input.txt'),'utf8',function(err,data){    if(err) return err;    setInterval(function(){console.log('异步打印的内容:',data)},3000);})

会照成死循环,JS是单线程的

第二题

问:把用户在输入框输入的数字,进行从小到大的排序

答:
看到这个题,我的第一想法就是利用数组的sort方法进行排序

1234567
function (a,b){return a - b}//用户的输入var user_input = '34672268943';var user_input_arr = user_input.split('');console.log('user_input_arr sort before',user_input_arr);user_input_arr.sort(order);console.log('user_input_arr after',user_input_arr);

但是面试官说,主要不是考察sort,是考察算法排序的

12

第三题

问: JavaScript中如何给数组去重

答:

1234567891011121314151617181920212223242526272829303132333435
var arr_original = [1,2,3,4,2,4,,6,8,9,'1'];var arr_unique = [];

//方法一,利用 Set 新特性,没有重复的集合// NaN这货虽然有不全等的特性,在Set里面认为是相同的,所以只能有一个var set = 大专栏  面试笔试题总结20170510>new Set(arr_original);arr_unique = Array.from(set);console.log('arr_unique',arr_unique);

//方法二,利用indexOf 方法var i = 0;for(;i<arr_original.length;i++){    var value = arr_original[i];    if(arr_unique.indexOf(value) == -1){        arr_unique.push(value);    }}//方法三,数组下标判断法,如果当前数组的第i项在当前数组中第一次出现的位置不是i,那么表示第i项是重复的,忽略掉。否则存入结果数组var i = 0;for(;i<arr_original.length;i++){    var value = arr_original[i];    if(arr_original.indexOf(value === i )){        arr_unique.push(value);    }}//方法四,利用数组的includes 方法,var i = 0;for(;i<arr_original.length;i++){    var value = arr_original[i];    if(!arr_unique.includes(value)){        arr_unique.push(value);    }}

console.log('arr_unique',arr_unique);

还有其他的去重的方法,在这就不一一列出来了
去重时需注意
var aa = [{},{},NaN,null,undefined,null,undefined]
aa.indexOf({}) //-1; aa.includes({}) //false
aa.indexOf(NaN) //-1; aa.includes(NaN) //true
aa.indexOf(null) //3 ; aa.includes(null) //false
aa.indexOf(undefined) //4;//aa.includes(undefined) //true
有上面得出: indexOf能去重不包含 {}NaN
includesSet能去重不包含 {}

第四题

问:应用服务器和游戏服务器有什么区别,对游戏服务器架构pomelo有什么理解?

答:看到这个题,懵逼了,游戏服务器没有接触过,pomelo是什么鬼,只有回来查了

12345678910
一般的网站应用程序,是典型的Request-Response模式,通过tcp和服务器建立一次链接,而请求数据和影响数据通过http协议进行组装,当完成一次交互的时候,服务器端和客户端tcp链接就会释放,把服务器端socket资源留给新的客户端。通常web程序是比较好扩展的,通过硬件负载均衡和添加web服务器来实现,这一套方案业界都已经比较成熟了。

网游比较特殊,最大的特点在于客户端和服务器端是要进行长连接的,客户端和服务器端基本上一直要保持连接,不是典型的Request-Response模式,Client会主动给Server发送数据,Server也可能主动往Client发送数据,生命周期比较长,一次发送的数据量比较小,但是数据交互发送比较频繁。由于要进行长连接,服务器端的socket就不能进行复用,单台服务器处理请求是会有限。用web的方案解决扩展问题,也不太适用。在web程序中,客户端之间的数据是没有交互的,所有的数据都是通过web服务器响应给客户端,但是网游服务器中,每个客户端的数据的变化,都要通过服务器端广播给其他客户端。所以客户端会有上限,这也就是为什么服务器要进行分区,一个区里面同时在线人数会有限制。

详细区别参考知乎的答案

123
pomelo的理解

一个网易开源的游戏服务段框架,与以往单进程的游戏框架不同, 它是高性能、高可伸缩、分布式多进程的游戏服务器框架,并且使用很简单。

中文文档

原文地址:https://www.cnblogs.com/lijianming180/p/12251399.html

时间: 2024-10-05 08:51:06

面试笔试题总结20170510的相关文章

java面试笔试题大汇总

java面试笔试题大汇总(一)JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象. 2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),

Web前端面试笔试题总结

最近一段时间要毕业了,忙着找工作,见过不少笔试面试题,自己总结了一些加上网上找的一些整合了一下.答案暂时都东拼西凑出来了,但是还是先不发出来,一方面是答案并不是唯一的并且自己的答案不能保证对,另一方面希望看到本文的伙伴能自己去找答案,毕竟,技术只有自己真正理解了才是自己的东西,共勉. 小白第一次发文,恭请指点. Web前端面试笔试题 Html+css 1.对WEB标准以及w3c的理解与认识. 2.Xhtml和html有什么区别. 3.css的引入方式有哪些?link和@import的区别是? 4

非常全的linux面试笔试题及答案

非常全的linux面试笔试题及答案 一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件/etc/fstab 中读取要加载的文件系统.3. Linux文件系统中每个文件用 i节点来标识.4. 全部磁盘块由四个部分组成,分别为引导块 .专用块 . i节点表块 和数据存储块.5. 链接分为: 硬链接 和 符号链接 .6. 超级块包含了i节点表 和 空闲块表等重要的文件系统信息.7. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限,则该八

新浪PHP开发工程师面试笔试题

找实习找的心累,于是在学校bbs上找了一个新浪的散招. 先做了一份笔试题,题目如下. 1.列举一下你知道的Unix信号,并说明其用途 2.给你一个ip地址,写出其无符号32位的表示法 3.给你一些http的东西post请求,数据,cookie,URL,写一个http头. 4.简述一些shell命令 top/mv/find/sar/touch/wc/chmod/df/strace 5.用PHP写一个程序,打印出本月日历 6.简单的SQL查询.有一个取手机号的后四位,不会. 取某几位好像可以用SUB

iOS面试笔试题附部分答案

面试反正看面试官水平和心情,我遇到的比较怪的问题还有"你觉得你是个有爱的人吗?"哈哈哈哈...只能说整理些下面是自己整理的,答案不一定对,哪里错了望不吝指正. iOS面试题集锦 至少10款以上iOS领域的开源组件: AFNetworking (NSURLConnction+NSOperation), Masonry,SDWebImage,MBProgreeHUD,MJRefresh,MWPhotoBrowser ,JSONKit http://www.jianshu.com/p/207

Java程序员精选高频面试笔试题全家桶,通往BAT必备法宝!《附赠PDF》

作为一名即将求职的程序员,面对一个可能跟近些年非常不同的 2019 年,你的就业机会和风口会出现在哪里?在这种新环境下,工作应该选择大厂还是小公司?已有几年工作经验的老兵,又应该如何保持和提升自身竞争力,转被动为主动? 最近这波互联网裁员浪潮下,许多朋友被裁之后几周内陆陆续续找到工作,但也有部分现在还在求职中,其中重要区别就是在于平时是否坚持积累和成长. 面对工作,与其选择满不情愿,最后收获痛苦煎熬和差强人意的结果,不如思考如何提升工作效率和自身能力,在工作中关注自身能力成长,并去刻意练习,想办

2019 字节跳动java面试笔试题 (含面试题解析)

本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.滴滴等公司offer,岗位是Java后端开发,最终选择去了阿里巴巴. 面试了很多家公司,感觉大部分公司考察的点都差不多,所以将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助.另外,目前在阿里也做面试官的工作,身份从求职者变为面试官,看问题的很多角度也不一样,所以下文中既有求职者的视角,也有面试官的视角 面试流程 ??先说下面试流程,一般大公司都有3-4轮技术面,1轮的HR面.就阿里而言,我共经

2019 新浪 java面试笔试题 (含面试题解析)

本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.滴滴等公司offer,岗位是Java后端开发,最终选择去了阿里巴巴. 面试了很多家公司,感觉大部分公司考察的点都差不多,所以将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助.另外,目前在阿里也做面试官的工作,身份从求职者变为面试官,看问题的很多角度也不一样,所以下文中既有求职者的视角,也有面试官的视角 面试流程 ??先说下面试流程,一般大公司都有3-4轮技术面,1轮的HR面.就阿里而言,我共经

2019 网易java面试笔试题 (含面试题解析)

本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.滴滴等公司offer,岗位是Java后端开发,最终选择去了阿里巴巴. 面试了很多家公司,感觉大部分公司考察的点都差不多,所以将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助.另外,目前在阿里也做面试官的工作,身份从求职者变为面试官,看问题的很多角度也不一样,所以下文中既有求职者的视角,也有面试官的视角 面试流程 ??先说下面试流程,一般大公司都有3-4轮技术面,1轮的HR面.就阿里而言,我共经