致力于打造一个专业的中小学教育学习网站

2022IT面试笔试题目及参考答案

时间:2022-08-30 10:20:18 admin

  求职面试时,面试官一般都会问你一些问题,也可能是通过问卷的形式提问,怎么回答才是最好的呢?这里给大家分享一些2020IT面试笔试题目,希望对大家有所帮助。

  2020年前端面试题目

  1.1、前端 MV框架的意义

  早期前端都是比较简单,基本以页面为工作单元,内容以浏览型为主,也偶尔有简单的表单操作,基本不太需要框架。

  随着 AJAX 的出现,Web2.0的兴起,人们可以在页面上可以做比较复杂的事情了,然后前端框架才真正出现了。

  如果是页面型产品,多数确实不太需要它,因为页面中的 JavaScript代码,处理交互的绝对远远超过处理模型的,但是如果是应用软件类产品,这就太需要了。

  长期做某个行业软件的公司,一般都会沉淀下来一些业务组件,主要体现在数据模型、业务规则和业务流程,这些组件基本都存在于后端,在前端很少有相应的组织。

  从协作关系上讲,很多前端开发团队每个成员的职责不是很清晰,有了前端的 MV框架,这个状况会大有改观。

  之所以感受不到 MV框架的重要性,是因为Model部分代码较少,View的相对多一些。如果主要在操作View和Controller,那当然 jQuery 这类库比较好用了。

  参考《前端 MV框架的意义》

  1.2、请简述盒模型

  IE6盒子模型与W3C盒子模型。

  文档中的每个元素被描绘为矩形盒子。盒子有四个边界:外边距边界margin, 边框边界bder, 内边距边界padding与内容边界content。

  CSS3中有个box-sizing属性可以控制盒子的计算方式,

  content-box:padding和bder不被包含在定义的width和height之内。对象的实际宽度等于设置的width值和bder、padding之和。(W3C盒子模型)

  bder-box:padding和bder被包含在定义的width和height之内。对象的实际宽度就等于设置的width值。(IE6盒子模型)

  参考《盒模型》

  1.3、请你谈谈Cookie的弊端

  a. 每个特定的域名下最多生成的cookie个数有限制

  b. IE和Opera 会清理近期最少使用的cookie,Firefox会随机清理cookie

  c. cookie的最大大约为4096字节,为了兼容性,一般不能超过4095字节

  d. 安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。

  1.4、浏览器本地存储

  在HTML5中提供了sessionStage和localStage。

  sessionStage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁,是会话级别的存储。

  localStage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。

  1.5、web stage和cookie的区别

  a. Cookie的大小是受限的

  b. 每次你请求一个新的页面的时候Cookie都会被发送过去,这样无形中浪费了带宽

  c. cookie还需要指定作用域,不可以跨域调用

  d. Web Stage拥有setItem,getItem等方法,cookie需要前端开发者自己封装setCookie,getCookie

  e. Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在 ,而Web Stage仅仅是为了在本地“存储”数据而生

  f. IE7、IE6中的UserData通过简单的代码封装可以统一到所有的浏览器都支持web stage

  1.6、对BFC规范的理解

  BFC全称是Block Fmatting Context,即块格式化上下文。它是CSS2.1规范定义的,关于CSS渲染定位的一个概念。

  BFC是页面CSS 视觉渲染的一部分,用于决定块盒子的布局及浮动相互影响范围的一个区域。

  BFC的一个最重要的效果是,让处于BFC内部的元素与外部的元素相互隔离,使内外元素的定位不会相互影响。

  利用BFC可以闭合浮动,防止与浮动元素重叠。

  参考《Learning BFC》

  1.7、线程与进程的区别

  a. 一个程序至少有一个进程,一个进程至少有一个线程

  b. 线程的划分尺度小于进程,使得多线程程序的并发性高

  c. 进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率

  d. 每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制

  e. 多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配

  1.8、你都使用哪些工具来测试代码的性能?

  JSPerf, Dromaeo

  1.9、你遇到过比较难的技术问题是?你是如何解决的?

  1.10、常使用的库有哪些?常用的前端开发工具?开发过什么应用或组件?

  Hadoop面试题及答案

  一、什么是Hadoop?

  Hadoop是一个开源软件框架,用于存储大量数据,并发处理/查询在具有多个商用硬件(即低成本硬件)节点的集群上的那些数据。总之,Hadoop包括以下内容:

  HDFS(Hadoop Distributed File System,Hadoop分布式文件系统):HDFS允许你以一种分布式和冗余的方式存储大量数据。例如,1 GB(即1024 MB)文本文件可以拆分为16 _ 128MB文件,并存储在Hadoop集群中的8个不同节点上。每个分裂可以复制3次,以实现容错,以便如果1个节点故障的话,也有备份。HDFS适用于顺序的“一次写入、多次读取”的类型访问。

  MapReduce:一个计算框架。它以分布式和并行的方式处理大量的数据。当你对所有年龄> 18的用户在上述1 GB文件上执行查询时,将会有“8个映射”函数并行运行,以在其128 MB拆分文件中提取年龄> 18的用户,然后“reduce”函数将运行以将所有单独的输出组合成单个最终结果。

  YARN(Yet Another Resource Nagotiator,又一资源定位器):用于作业调度和集群资源管理的框架。

  Hadoop生态系统,拥有15多种框架和工具,如Sqoop,Flume,Kafka,Pig,Hive,Spark,Impala等,以便将数据摄入HDFS,在HDFS中转移数据(即变换,丰富,聚合等),并查询来自HDFS的数据用于商业智能和分析。

  某些工具(如Pig和Hive)是MapReduce上的抽象层,而Spark和Impala等其他工具则是来自MapReduce的改进架构/设计,用于显著提高的延迟以支持近实时(即NRT)和实时处理。

  二、基于Hadoop的数据中心的好处是什么?

  随着数据量和复杂性的增加,提高了整体SLA(即服务水平协议)。例如,“Shared Nothing”架构,并行处理,内存密集型处理框架,如Spark和Impala,以及YARN容量调度程序中的资源抢占。

  1、缩放数据仓库可能会很昂贵:添加额外的高端硬件容量以及获取数据仓库工具的许可证可能会显著增加成本。基于Hadoop的解决方案不仅在商品硬件节点和开源工具方面更便宜,而且还可以通过将数据转换卸载到Hadoop工具(如Spark和Impala)来补足数据仓库解决方案,从而更高效地并行处理大数据。这也将释放数据仓库资源。

  2、探索新的渠道和线索:Hadoop可以为数据科学家提供探索性的沙盒,以从社交媒体,日志文件,电子邮件等地方发现潜在的有价值的数据,这些数据通常在数据仓库中不可得。

  3、更好的灵活性:通常业务需求的改变,也需要对架构和报告进行更改。基于Hadoop的解决方案不仅可以灵活地处理不断发展的模式,还可以处理来自不同来源,如社交媒体,应用程序日志文件,image,PDF和文档文件的半结构化和非结构化数据。

  四、简单描述如何安装配置一个apache开源版hadoop,只描述即可,无需列出完整步骤,能列出步骤更好。

  1、安装JDK并配置环境变量(/etc/profile);

  2、关闭防火墙;

  3、配置hosts文件,方便hadoop通过主机名访问(/etc/hosts);

  4、设置ssh免密码登录;

  5、解压缩hadoop安装包,并配置环境变量;

  6、修改配置文件($HADOOP_HOME/conf);hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml;

  7、格式化hdfs文件系统(hadoop namenode -format);

  8、启动hadoop($HADOOP_HOME/bin/start-all.sh);

  9、使用jps查看进程。

  五、请列出正常工作的hadoop集群中hadoop都分别需要启动那些进程,他们的作用分别是什么,尽可能写的全面些。

  1、NameNode: HDFS的守护进程,负责记录文件是如何分割成数据块,以及这些数据块分别被存储到那些数据节点上,它的主要功能是对内存及IO进行集中管理。

  2、Secondary NameNode:辅助后台程序,与NameNode进行通信,以便定期保存HDFS元数据的快照。

  3、DataNode:负责把HDFS数据块读写到本地的文件系统。

  4、JobTracker:负责分配task,并监控所有运行的task。

  5、TaskTracker:负责执行具体的task,并与JobTracker进行交互。

  六、请列出你所知道的hadoop调度器,并简要说明其工作方法

  比较流行的三种调度器有:默认调度器FIFO,计算能力调度器Capacity Scheduler,公平调度器Fair Scheduler

  1、默认调度器FIFO:hadoop中默认的调度器,采用先进先出的原则。

  2、计算能力调度器Capacity Scheduler:选择占用资源小,优先级高的先执行。

  3、公平调度器Fair Scheduler:同一队列中的作业公平共享队列中所有资源。

  七、Hive有那些方式保存元数据的,各有那些特点。

  1、内存数据库derby,较小,不常用;

  2、本地mysql,较常用;

  3、远程mysql,不常用。

  八、简述hadoop实现Join的几种方法。

  1、reduce side join

  reduce side join是一种最简单的join方式,其主要思想如下:

  在map阶段,map函数同时读取两个文件File1和File2,为了区分两种来源的key/value数据对,对每条数据打一个标签(tag),比如:tag=0表示来自文件File1,tag=2表示来自文件File2。即:map阶段的主要任务是对不同文件中的数据打标签。

  在reduce阶段,reduce函数获取key相同的来自File1和File2文件的value list, 然后对于同一个key,对File1和File2中的数据进行join(笛卡尔乘积)。即:reduce阶段进行实际的连接操作。

  2、map side join

  之所以存在reduce side join,是因为在map阶段不能获取所有需要的join字段,即:同一个key对应的字段可能位于不同map中。Reduce side join是非常低效的,因为shuffle阶段要进行大量的数据传输。

  Map side join是针对以下场景进行的优化:两个待连接表中,有一个表非常大,而另一个表非常小,以至于小表可以直接存放到内存中。这样,我们可以将小表复制多份,让每个map task内存中存在一份(比如存放到hash table中),然后只扫描大表:对于大表中的每一条记录key/value,在hash table中查找是否有相同的key的记录,如果有,则连接后输出即可。

  为了支持文件的复制,Hadoop提供了一个类DistributedCache,使用该类的方法如下:

  (1)用户使用静态方法

  DistributedCache.addCacheFile()指定要复制的文件,它的参数是文件的URI(如果是HDFS上的文件,可以这样:hdfs://namenode:9000/home/_X/file,其中9000是自己配置的NameNode端口号)。

  JobTracker在作业启动之前会获取这个URI列表,并将相应的文件拷贝到各个TaskTracker的本地磁盘上。

  (2)用户使用

  DistributedCache.getLocalCacheFiles()方法获取文件目录,并使用标准的文件读写API读取相应的文件。

  3、SemiJoin

  SemiJoin,也叫半连接,是从分布式数据库中借鉴过来的方法。它的产生动机是:对于reduce side join,跨机器的数据传输量非常大,这成了join操作的一个瓶颈,如果能够在map端过滤掉不会参加join操作的数据,则可以大大节省网络IO。

  实现方法很简单:选取一个小表,假设是File1,将其参与join的key抽取出来,保存到文件File3中,File3文件一般很小,可以放到内存中。在map阶段,使用DistributedCache将File3复制到各个TaskTracker上,然后将File2中不在File3中的key对应的记录过滤掉,剩下的reduce阶段的工作与reduce side join相同。

  4、reduce side join + BloomFilter

  在某些情况下,SemiJoin抽取出来的小表的key集合在内存中仍然存放不下,这时候可以使用BloomFiler以节省空间。

  BloomFilter最常见的作用是:判断某个元素是否在一个集合里面。它最重要的两个方法是:add() 和contains()。最大的特点是不会存在false negative,即:如果contains()返回false,则该元素一定不在集合中,但会存在一定的true negative,即:如果contains()返回true,则该元素可能在集合中。

  因而可将小表中的key保存到BloomFilter中,在map阶段过滤大表,可能有一些不在小表中的记录没有过滤掉(但是在小表中的记录一定不会过滤掉),这没关系,只不过增加了少量的网络IO而已。

  ActiveMQ面试题及答案

  1、什么是 ActiveMQ?

  activeMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。

  2、Activemq的瓶颈值

  根据网上一般评测文档上来看,每秒的消息吞吐在2000以上, acticemq也可以集群化部署,也是使用zookeeper来搭建。

  3、ActiveMQ服务器宕机怎么办?

  这得从ActiveMQ的储存机制说起。在通常的情况下,非持久化消息是存储在内存中的,持久化消息是存储在文件中的,它们的最大限制在配置文件的节点中配置。

  但是,在非持久化消息堆积到一定程度,内存告急的时候,ActiveMQ会将内存中的非持久化消息写入临时文件中,以腾出内存。虽然都保存到了文件里,但它和持久化消息的区别是,重启后持久化消息会从文件中恢复,非持久化的临时文件会直接删除。

  那如果文件增大到达了配置中的最大限制的时候会发生什么?我做了以下实验:

  设置2G左右的持久化文件限制,大量生产持久化消息直到文件达到最大限制,此时生产者阻塞,但消费者可正常连接并消费消息,等消息消费掉一部分,文件删除又腾出空间之后,生产者又可继续发送消息,服务自动恢复正常。

  设置2G左右的临时文件限制,大量生产非持久化消息并写入临时文件,在达到最大限制时,生产者阻塞,消费者可正常连接但不能消费消息,或者原本慢速消费的消费者,消费突然停止。整个系统可连接,但是无法提供服务,就这样挂了。

  具体原因不详,解决方案:尽量不要用非持久化消息,非要用的话,将临时文件限制尽可能的调大。

  4、AcitveMQ的作用、原理?(生产者、消费者。p2p、订阅实现流程)

  Activemq的作用就是系统之间进行通信。当然可以使用其他方式进行系统间通信,如果使用Activemq的话可以对系统之间的调用进行解耦,实现系统间的异步通信。原理就是生产者生产消息,把消息发送给activemq。Activemq接收到消息,然后查看有多少个消费者,然后把消息转发给消费者,此过程中生产者无需参与。消费者接收到消息后做相应的处理和生产者没有任何关系

  5、activemq在项目中如何应用的

  Activemq在项目中主要是完成系统之间通信,并且将系统之间的调用进行解耦。例如在添加、修改商品信息后,需要将商品信息同步到索引库、同步缓存中的数据以及生成静态页面一系列操作。

  在此场景下就可以使用activemq。一旦后台对商品信息进行修改后,就向activemq发送一条消息,然后通过activemq将消息发送给消息的消费端,消费端接收到消息可以进行相应的业务处理

  7、rabbitmq如何实现集群高可用?

  集群是保证服务可靠性的一种方式,同时可以通过水平扩展以提升消息吞吐能力。RabbitMQ是用分布式程序设计语言erlang开发的,所以天生就支持集群。接下来,将介绍RabbitMQ分布式消息处理方式、集群模式、节点类型,并动手搭建一个高可用集群环境,最后通过java程序来验证集群的高可用性。

  RabbitMQ分布式的消息处理方式有以下三种:

  (1)Clustering:不支持跨网段,各节点需运行同版本的Erlang和RabbitMQ,应用于同网段局域网。

  (2)Federation:允许单台服务器上的Exchange或Queue接收发布到另一台服务器上Exchange或Queue的消息,应用于广域网。

  (3)Shovel:与Federation类似,但工作在更低层次。

  RabbitMQ对网络延迟很敏感,在LAN环境建议使用clustering方式;在WAN环境中,则使用Federation或Shovel。我们平时说的RabbitMQ集群,说的就是clustering方式,它是RabbitMQ内嵌的一种消息处理方式,而Federation或Shovel则是以plugin形式存在。

  结尾:非常感谢大家阅读《2022IT面试笔试题目及参考答案》,更多精彩内容等着大家,欢迎持续关注学习大全网「Xuexidaquan.Com」,一起成长!

2022IT面试笔试题目及参考答案相关文章:

研发工程师面试笔试题目

国企面试笔试题目

最新IT面试笔试题目参考

2022IT面试笔试题目及参考答案

最新求职笔试题app

求职笔试题目汇总

【笔试题】推荐文章

【笔试题】图文精华

热门排行