前端笔试填空题 | 学习笔记

明天早上快手前端笔试,我前段基本等于0.3入门,所以算是白给了。

上网查了一下已有的题库,写一下学习的零碎知识点吧。

第一题:斜杠记法

有关斜杠记法呢,我理解就是对应的二进制有几个1.

255.255.240.0中,255代表11111111,8个1,前两个255有16个1.后面的240可以用255-240算,15= 8(千位)+4(百位)+2(十位)+1(个位)。所以240对应二进制位11110000.

0不算,所以总共加起来是16+4 = 20,选B

更多有关子网掩码:

子网掩码是用来决定一个IP的网络号和主机号的。当用斜杠法表示时,/20,代表前20位都是网络号,后12位是主机号。

https://www.zhihu.com/question/56895036




第二题:jvm类加载器优先级

查这个的时候顺便搞懂了,多年不懂的JDK(java development kit),开发套装。。。JRE(java runtime environment),运行环境。下载好的JDK里有一个jre文件夹,里面有bin和lib两个文件夹,jvm姑且在bin里,运行过程中会调用lib里的库,这两个合起来就是JRE。JVM(java virtual machine),用以运行以java写的程序。

而JVM的类加载子系统,在它运行时首次引用一个类时,会经过加载,链接和初始化这三个过程。

启动类加载器 (BootStrap class Loader)、扩展类加载器(Extension class Loader)和应用程序类加载器(Application class Loader) 这三种类加载器帮助完成类的加载。

1. 启动类加载器 – 负责从启动类路径中加载类,无非就是rt.jar。这个加载器会被赋予最高优先级。

2. 扩展类加载器 – 负责加载ext 目录(jre\lib)内的类.

3. 应用程序类加载器 – 负责加载应用程序级别类路径,涉及到路径的环境变量等etc.上述的类加载器会遵循委托层次算法(Delegation Hierarchy Algorithm)加载类文件,这个在后面进行讲解。

https://www.jianshu.com/p/52c38cf2e3d4

▷寻找jre目录,寻找jvm.dll,并初始化JVM.

▷产生一个Bootstrap ClassLoader;Bootstrap ClassLoader加载器会加载他指定路径下的java核心api,并且生成Extended ClassLoader加载器的实例,然后Extended ClassLoader会加载指定路径下的扩展java api,并将其父设置为Bootstrap ClassLoader。

▷Bootstrap ClassLoader生成Application ClassLoader,并将其父Loader设置为Extended ClassLoader。

▷最后由AppClass ClassLoader加载classpath目录下定义的类——HelloWorld类。

以上可以看出该题答案为A,bootstrap加载器最高优先级,之后生成extension加载器,再生成app加载器,最后是user自定义的加载器。




第三题:二叉树数据结构

这个数据结构我还没复习到。。。先放在这里,之后再填坑。不过看起来挺简单的?




第四题:网络协议

A:常见http状态码

1XX:通知,信息

    101

2XX:成功

    200(ok)

3XX:重定向,需要进一步操作来完成请求

    301( Moved Permanently)资源被永久转移到其他URL

    302(Moved Temporarily)资源被暂时转移到其他URL

4XX:客户端错误

    400(Bad Request)错误请求,服务器不理解请求的语法

    401(Unauthorized)未授权

    404(Not Found)请求的资源不存在

    409(Conflict)当客户端试图执行一个,会导致资源处于不一致状态的操作时

    410(Gone)曾经资源存在,现在不存在了

5XX:服务端错误

    500(Internal Server Error)内部服务器错误

    503(Service Unavailable)服务器超时




笔试归来的我,发现全是算法题,共4道,跟前端基础知识一点边都不沾。

第一道,输入一组数组,然后输出另一组数组。判断当前数的前面有没有比它大的值,如果有,则该位置输出最靠近它的那个值距它有多少位,如果没有,则输出0。如,[155,160,190,185,177,188],则输出[0,0,0,1,1,3]。(因为前三个数的前面都没有比它大的值,185前面有190,距离它1位,则输出1.而177前面有185,输出1.最后比188大的最近值是190,距离3,则输出3.)


第二道,判断一组数组中,前n个数中,是否只有一个数大于它。(相同数都视为一个。比如,[1,2,4,4,4,3],对与array[5]成立。因为只有4比它大)。如果成立,输出一个数组表示所有符合条件的数在数组中的位置。如果不成立,输出null。要求:时间复杂度小于等于O(n)


第三道,筛选手机靓号和排序。靓号定义:1.连续三个以上的相同数,如666 或者 2.连续三个以上的顺序数,如123。大小定义:1.位数越多大于位数越小。2.位数相同时,相同数大于顺序数。3,同时拥有相同数和顺序数时,取一个其中的优先值,如含有444567,则取4567.最后,4,同级之间大小没有区别,如555,666。所以要求稳定排序


第四道,一个电路板m*n大小,每个单元里有能量储存(二维数组)。现在要把已有的几个元件放入电路板中,元件大小x*y。放入元件的条件为:1,大小合适。2,放入x*y的每个单元里能量相同。如果不同,需要进行释放能量操作。所有释放的能量加起来为该元件的损耗成本。求,损耗成本最小的放置方案。(输出放置每个元件的左上角坐标和损耗成本)

如,一个4*5的电路板,里面能量如下图,要放置2块2*3的元件,它的最佳方案为(1,3),16和(3,2),10。因为第一块需要把能量都释放为2.则5+7+2+2=16.第二块需要把能量都释放为5,则2+3+5+1=10.

你可能感兴趣的:(前端笔试填空题 | 学习笔记)