• 校招开篇第一次面试——打响校招的第一枪(二)


    前言:刚刚更了一面的内容,问到的问题都是前端技术相关的,而这次二面问到js的问题就一个,上来第一个问题就是算法,然后又是计算机网络,计网我之前有刷过一次书,但是时间已经是1个多月前,所以我本身的知识已经有遗忘,而且当时的心态也被各种打击惨了,所以计网的问题也是答得很不好,总体表现就是差。但是这次面试经历对我也非常的重要,它让我清晰明白的知道了我技能的薄弱的一块——算法,同时也激起了我的斗志,接下来的学习重点就是算法啦~真的很痛苦,但是这次再也不要退让了,不把算法啃下来,我就啃我自己,哼

    正文:

    二面面试题目

    1.自我介绍

    思路:个人信息+应聘岗位+相关技能+实践经历

    2.简单介绍一下做过的项目

    思路:就像我一面总结文里说的,尽量不要啰嗦,言简意赅就是最高境界,更详细的思路可以看我上一篇文 (链接在此:http://www.cnblogs.com/zllwebstudy/p/5839518.html)

    3.表达验证,异步,文件上传(这些是我说到的实现的功能,然后就引发了下一个问题)

    4.如何实现大文件上传,如几百M或者几G的文件

    思路:当时是懵掉了,因为我们做的项目有要求文件大小不超过多少,所以没有考虑过大文件上传,只能扯了半天,说不知道了。总结时,去网上找了很多文来看,但是基本是一个调调,在此真的要感慨一    下,网上的文在很多网站都是一模一样,也不知道是谁抄谁的,希望抄袭的网站能够注明原著,不要让人家的心血白费。所以我之后看到这个文(链接在此:http://blog.csdn.net/sinat_29804751/article/details/46876061)还不错,但不知是不是原创,希望不是又一个伤害原作者的网站。还没有具体实现过,但是原理感觉应该是对的,之后会去实践,如果有错再来改正。

    5.冒泡排序的时间复杂度是多少?

    思路:很不确定的说是nlogn(完全是乱蒙),面试官很耐心的引导我,我想起出来,说是n²(答案是n²)

    6.那简单说说快速排序的实现思路。

    思路:没答上来,总结看书是知道了,简述如下:首先选择一个轴值,将待排序记录划分为独立的两部分,左侧记录的关键码均小于或等于轴值,右侧记录的关键码均大于或等于轴值,然后分别对着两部分   重复上述操作(即选取轴值,然后小于或等于轴值的放到左边,大于或等于轴值的放在右边),直到整个序列有序。

    7.在对话框里5分钟写出冒泡排序算法(当时用的qq开视频)

    思路:没答上来,在此写js的代码实现:

    function bubbleWay(arr,n){//arr为排序的数组,n为需要排序的元素个数
          var exchange = n;  //排序从1-n
          while(exchange != 0){//用0来作为边界判定条件
                var bound = exchange;//当前需要从1-bound进行交换
                exchange = 0;//初始化exchange为0,表示还没有进行交换
                for(var j=0;j<bound;j++){//遍历需要交换的元素
                    if(arr[j]>arr[j+1]){//如果当前元素大于其后元素,则两者交换
                            var temp = arr[j];
                            arr[j] = arr[j+1];
                            arr[j+1] = temp;
                            exchange = j;//exchange记录当前交换发生的位置
                    }
                }
          }      
    }        

    8.一个人走100个阶梯,他可以走1步或者走2步,问一共有多少种走法。

    思路:依然是没答上来,哎,心塞,题思路解如下:

      (1)当要走的阶梯为0阶时,有0种走法。(选1步或2步都不能到达)

      (2)当要走的阶梯为1阶时,有1种走法。(选1步)

      (3)当要走的阶梯为2阶时,有2种走法。(走1步两次或者走2步)

      (4)当要走的阶梯大于等于3时,有fn=f(n-1)+f(n-2)种走法。(想象一下,这个人现在站在第n阶梯,他只可能从n-1或者从n-2阶梯走过来,由此再往前推,n-1阶梯只可能从n-1-1或者n-1-2阶  梯走来,所以这是一个递归调用)

      综上所述,100阶梯的走法为f100=f99+f98=....种走法。(写了算法准备算一算的,然而被卡死机了。。。反正大家就知道原理好了,应该不至于变态要算出结果来。。。。)

    9.http状态码中200代表什么?304代表什么?

    思路:200代表成功,304代表缓存可用。

    10.http报文表头里指示缓存的字段有哪些?

    思路:cache-Control,pragma,Expires,网上找了一篇文,写得挺好的(链接在此:http://www.codeceo.com/article/http-cache-control.html)

    11.tcp连接时需要几次握手?断开需要几次挥手?叙述一下断开时的情况。

    思路:3次握手4次挥手。(ps:我的WiFi名就是这个~)断开时,(1)由客户端发出连接释放报文,并停止发生数据,主动关闭tcp连接。

        (2)服务器端发出确认,这时的tcp处于瓣关闭状态,客户端不能发生数据,当任然能接受服务器端发送的数据

        (3)服务器端发出连接释放报文,等待客户端的确认

        (4)客户端返回确认,等待一段时间后,断开连接

    12.tcp的MTU是多少?(此处面试官说的是这个问题,但是之后有大牛指出,MTU是链路层的概念,所以特别说明,MTU是链路层概念,MSS是tcp的概念)

    思路:1500字节 这里有个和MTU相关的概念是MSS,看到一篇文讲得挺好的(链接在此:http://blog.csdn.net/yygydjkthh/article/details/7359281)

    13.什么是闭包?什么是原型?

    思路:又是经典的必考问题,闭包和原型是js里面很重要的概念,面试被考到4次的3次,不会的小伙伴在网上搜文来看,讲得很详细,不再赘述。

    14.看你用过gulp,主要是用来做什么?(答:压缩图片)除了压缩图片还做过什么?(压缩js,css,添加前缀)那为什么要压缩js文件?

    思路:gulp教程很多,我放一个我自己很喜欢的(链接在此:https://github.com/nimojs/gulp-book)至于为何压缩js文件,主要说到两点:(1)减少js文件大小,方便传输,提高传输速率(2)保护   源码,不被窃取原创知识,保护原创从我做起。

    15.对于前端工程师的看法。

    思路:有事儿说事儿,无事退朝。

    16.还有没有什么想问的。

    思路:看过很多面经,总结一点就是,别问敏感问题,敏感问题的关键字有:工资,加班等等。

    后话:

    这次是视频面试,比起一面的电话面试会有更多的打扰因素,所以大家在面试的时候更要注意面试时的环境,不然真的会很打扰面试时的心情,但是对于那些不能改变的部分(我面试时,网速不稳定,面试官说话的声音很卡顿,很嘈杂)就要调整心态,也当是一次身心的修行吧。这次面试的表现不怎么样,但是也是一次很不错的经历,一面让我增加的信心,二面让我深刻的明白自己的不足,我相信待得校招还有更好的表现。最后,各位要面临校招的战友们,一起加油吧~希望大家都能签到自己满意的公司~加油~

  • 相关阅读:
    FZU 2150 Fire Game
    POJ 3414 Pots
    POJ 3087 Shuffle'm Up
    POJ 3126 Prime Path
    POJ 1426 Find The Multiple
    POJ 3278 Catch That Cow
    字符数组
    HDU 1238 Substing
    欧几里德和扩展欧几里德详解 以及例题CodeForces 7C
    Codeforces 591B Rebranding
  • 原文地址:https://www.cnblogs.com/zllwebstudy/p/5839755.html
Copyright © 2020-2023  润新知