2024年Web前端最全软件服务工程 -- 概念性知识点总结,我崩溃了

总结

秋招即将开始,校招的朋友普遍是缺少项目经历的,所以底层逻辑,基础知识要掌握好!

而一般的社招,更是神仙打架。特别强调,项目经历不可忽视;几乎简历上提到的项目都会被刨根问底,所以项目应用的技术要熟练,底层原理必须清楚。

这里给大家提供一份汇集各大厂面试高频核心考点前端学习资料。涵盖 HTML,CSS,JavaScript,HTTP,TCP协议,浏览器,Vue框架,算法等高频考点238道(含答案)

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

资料截图 :

高级前端工程师必备资料包

控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当IoC被使用,一个对象依赖的其它对象不会通过自己创建或者查询以来对象,而是以被动的的方式被传递。 IoC和JNDI可以被认为是相反的,当容器在对象初始化时未等对象进行请求就率先主动将依赖传递给它。   IMediaFile imf = Assembly.Load(ConfigurationManager. Settings[“AssemName”]).CreateInstance(ConfigurationManager. Settings[“MediaName”]);

这个具体对象是哪一个,全由配置文件控制,就是控制反转。即对象的控制权进行转移,转移到第三方,例如IoC容器。

3. AJAX 分别通过什么机制实现标准化呈现、实现动态显示和交互、进行数据交换与处理、 进行异步数据读取、绑定和处理所有数据?

Ajax使用XHTML和CSS标准化呈现; Ajax使用DOM实现动态显示和交互; Ajax使用XML和XSLT进行数据交换与处理;Ajax使用XMLHttpRequest进行异步数据读取; Ajax使用JavaScript绑定和处理所有数据。

4. 请比较描述机器学习的分类模型 XGboost、Adaboost、Catboost、随机森林和 GBDT****?****

XGboost是梯度提升树的一种高效系统实现,是对GBDT进一步的改进,包括对代价函数进行了二阶泰勒展开,在代价函数里加入了正则项,借鉴了随机森林的列采样方法,支持并行计算等。  AdaBoost是基于boosting的思想,通过多个弱分类器的线性组合来得到强分类器,训练时重点关注被错分的样本,准确率高的弱分类器权重大。

CatBoost是Category 和 Boosting的缩写,最大的特点就是可以直接处理类别特征,不需要任何预处理来将类别转换为数字。

随机森林算法背后的思想是群体智慧的体现,它通过随机的行采样(bagging)和列采样(feature bagging)构造不同的训练集,建立一个决策树森林,利用加权平均方式或多数表决的方式得到最后的预测结果,能够并行学习,对噪声和异常数据具有很好的过滤作用,因此有很广泛的应用。

GBDT是基于boosting的思想,串行地构造多棵决策树来进行数据的预测,它是在损失函数所在的函数空间中做梯度下降,即把待求的决策树模型当作参数,每轮迭代都去拟合损失函数在当前模型下的负梯度,从而使得参数朝着最小化损失函数的方向更新。

5. 欧几里得距离、皮尔逊相关系数、Cosine 相似度(余弦)、Tanimoto 系数(谷本)以上系数越大越相似,需要根据具体数据类型场景具体选用,请说明基于什么数据类型场景选用不同的相似度判断?为什么?

****欧几里得:****适合于特征数据量较小,且完整的情况。如某T恤从100块降到了50块(A(100,50)),某西装从1000块降到了500块(B(1000,500)),那么T恤和西装都是降价了50%,两者的价格变动趋势一致,可以用余弦相似度衡量,即两者有很高的变化趋势相似度,但是从商品价格本身的角度来说,两者相差了好几百块的差距,欧氏距离较大,即两者有较低的价格相似度。

**皮尔逊相关系数:**适合于特征数据量较大的情况,分数膨胀的情况。比如用户对一个物品的评价,每个用户的评价标准不同,因此衡量两个变量之间的相关性更可信。

Cosine相似度:适用于数据是稀疏的。假设这样一个数据集,一个在线音乐网站,每个用户常听的也就其中的几十首,这种情况下使用曼哈顿或者欧几里得或者皮尔逊相关系数进行计算用户之间相似性,计算相似值会非常小,因为用户之间的交集本来就很少,这样对于计算结果来讲是很不准确的,因此需要cosine相似度。

Tanimoto系数:适用于:数据表示为0、1这种二值化,而非有数量大小的情况。比较文本相似度,用于文本查重与去重;计算对象间距离,用于数据聚类等。

6. Apriori 算法有五种改进性能方法,请分别解释它们的原理?

****1. Hash-based itemset counting(散列项集计数)****将每个项集通过相应的hash函数映射到hash表中的不同的桶中,这样可以通过将桶中的项集计数跟最小支持计数相比较先淘汰一部分项集。

2、****Transaction reduction(事务压缩)****减少用于未来扫描的事务集的大小。一个基本的原理就是当一个事务不包含长度为k的频集,则必然不包含长度为k+1的频集。从而我们就可以将这些事务加上标记或者删除,这样在下一遍的扫描中就可以减少进行扫描的事务集的个数。

3、****Partitioning(划分)****挖掘频繁项集只需要两次数据库扫描。D中的任何频繁项集必须作为局部频繁项集至少出现在一个部分中。第一次扫描:将数据划分为多个部分并找到局部频繁项集,第二次扫描:评估每个候选项集的实际支持度,以确定全局频繁项集。

4、****Sampling(采样)****选择原始数据的一个样本,在这个样本上用Apriori算法挖掘频繁模式。通过牺牲精确度来减少算法开销,为了提高效率,样本大小应该以可以放在内存中为宜,可以适当降低最小支持度来减少遗漏的频繁模式。可以通过一次全局扫描来验证从样本中发现的模式,可以通过第二此全局扫描来找到遗漏的模式。

5、FP-growth算法FP-growth算法只进行2次数据库扫描。它不用生成候选集,不使用候选集,直接压缩数据库成一个频繁模式树,最后通过这棵树生成关联规则。两个步骤:① 利用事务数据库中的数据构造FPgrowth;②从FP-growth中挖掘频繁模。

7. 什么是 DevOps?DevOps 工具链中常用的工具哪些(至少 3 个)?DevOps 模式的应用领域有哪些?

DevOps是提高软件开发、测试、运维、运营等各部门的沟通与协作质量的方法和过程,DevOps强调软件开发人员与软件测试、软件运维、质量保障(QA)部门之间有效的沟通与协作,强调通过自动化的方法去管理软件变更、软件集成,使软件从构建到测试、发布更加快捷、可靠,最终按时交付软件。   DevOps(development &operations)是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障部门之间的沟通、协作与整合。

****DevOps目的:****为了按时交付软件产品和服务,开发和运营工作必须紧密合作。

****工具:****GitHub 、Git/SVN、Docker、 Jenkins、 Hudson、 Ant/Maven/Gradle、QUnit、 JMeter等。

应用领域:(传统企业 移动研发 支付宝 阿里巴巴)将开发延伸至生产中–包括拓展持续集成和发布功能至生产,集成QA和信息安全至整个工作流,确保代码和环境可在生产中直接部署。 向开发中加入生产反馈–包括建立开发和IT运营事件的完整时间表用于帮助事件的解决,使得开发融入无指责的生产反思,尽可能使开发可以自助服务,同时创建信息指示器来表明本地的决策如何影响全局的目标。 开发嵌入到IT运维中–包括开发投入到整个生产问题处理链,分配开发资源用于生产问题管理,并协助退回技术债务,并且开发为IT运维提供交叉培训,增加IT运维处理问题的能力,从而降低升级问题的数量。 将IT运维嵌入至开发–包括嵌入和联络IT运维资源至开发,帮助开发创建为运维使用的可重用的用户故事,定义一些可以被所有项目共用的非功能性需求。

8. 简述 REST 和 SOAP 协议,并说明相比于 SOAP,REST 有哪些优点?

****R********EST:****REST是一种用于设计松散耦合的Web服务的体系结构样式。它主要用于开发轻量级、快速、可扩展和易于维护的Web服务。  RESTful应用程序使用HTTP请求发布数据(创建/更新)、读取数据(进行查询)和删除数据。因此,REST将HTTP用于所有四个CRUD(创建/读取/更新/删除)操作。 REST将Web定义为分布式超媒体(超文本中的超链接)应用程序,其链接资源通过交换资源状态表示进行通信。其余的体系结构风格为 构建分布式和松散耦合的应用程序提供了指导原则。 REST不是一个标准,而是一种体系结构样式,使用http、text/html、text/xml等标准。

S********OAP: SOAP简单对象访问协议是一种协议,主要依赖XML来提供消息传递服务。 SOAP使用不同的协议进行通信,如http、smtp或ftp。REST是一种体系结构风格,它使用现有的HTTP操作和方法;并且不创建任何新的标准。

****REST比SOAP Web服务更灵活。它比SOAP有以下好处。****SOAP只对消息使用XML,REST支持不同的格式;REST消息的大小较小,占用的带宽较小;REST在性能方面更好,具有更好的缓存支持;访问REST Web服务不需要第三方工具。REST的服务学习使用更容易。

9. 云计算系统的 5 个层次?以及云计算的基本特征(至少 5 个)?

****5个层次:****1.云客户端可以是计算机、移动电话等硬件,也可以是操作系统、浏览器等软件。它是云计算系统的服务对象。最终用户通过客户端向云端发送请求并接受云计算服务。 2.云应用程序使运行软件成为一种服务。这些应用程序在云计算系统而不是在用户本地运行,由云计算系统为其分配资源并维护其运行状态。用户通过网络获取运行结果。 3.云计算平台是云应用程序运行的平台。它为云应用程序分配和调度计算资源。 4.云基础设施实现了对软硬件的虚拟化,使云计算平台不用关心处理器、存储器、数据库、网络设备、软件等应如何组织。 5.云服********务器指实际的计算机软硬件,包括多核处理器、面向云计算的操作系统等等。这些软硬件能够提供云计算服务。

基本特征: 灵活性:可以在花费代价很小的情况下,为用户快速的重新配置资源。 应用程序兼容性:用户可以和调用本地API一样调用云端软件提供的API。 可靠性:云计算系统可以为用户分配冗余的资源,能够进行灾难恢复。可扩展性:云端的资源可以动态地扩展,省却了用户的配置工作。 易维护性:对于最终用户来说,只进行Web访问,不用安装客户端,易于维护。 低花费 • 硬件设备位置无关性 • 资源共享 • 可测量性 • 随需应变自助服务 • 异构访问 • 资源池

10. Django 是一个开放源代码的 Web 应用框架?请详细描述该应用框架

Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。

Django 框架的核心组件有:(1)用于创建模型的对象关系映射;(2)为最终用户设计较好的管理界面;(3)URL 设计(4)设计者友好的模板语言;(5)缓存系统。 Django已经成为web开发者的首选框架,是一个遵循 MVC 设计模式的框架。MVC是Model、View、Controller三个单词的简写,分别代表模型、视图、控制器。   Django其实也是一个MTV 的设计模式。MTV是Model、Template、View三个单词的简写,分别代表模型、模版、视图  。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。它们各自的职责如下:模型(Model),即数据存取层,处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。模板(Template),即表现层,处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。视图(View),即业务逻辑层,存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。

11. Dubbo 是什么?它有什么特点?

Dubbo(开源分布式服务框架),阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,Dubbo是一个远程服务调用的分布式框架,致力于提供高性能和透明化的RPC远程服务调用方案以及SOA服务治理方案。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡以及服务自动注册和发现。

特点:远程通讯:基于长连接的NIO框架抽象封装,提供多协议支持 集群容错:软负载均衡,失败容错,地址路由,动态配置等集群支持。 自动发现:基于注册中心目录服务,使服务消费方能动态的查找服务提供方,支持平滑减少或增加机器

12. 一个项目能否被设计成微服务的架构,需要考虑的因素是什么?

微服务可以按照业务功能本身的独立性来划分,如果系统提供的业务是非常底层的,如:操作系统内核、存储系统、网络系统、数据库系统等等,这类系统都偏底层,功能和功能之间有着紧密的配合关系,如果强制拆分为较小的服务单元,会让集成工作量急剧上升,并且这种人为的切割无法带来业务上的真正的隔离,所以无法做到独立部署和运行,也就不适合做成微服务了。

能不能做成微服务,取决于四个要素: 小:微服务体积小,2 pizza 团队。 独:能够独立的部署和运行。 轻:使用轻量级的通信机制和架构。 松:为服务之间是松耦合的

13. 微服务中划分服务有哪些可以参考的设计策略?判断良好服务的标准是什么****?****

****参考策略:****参考DDD (Domain-Driven Design领域驱动设计)中的设计策略“界定的上下文”(Bounded Context),划分出系统中不同的领域模型(上下文)。 每一个领域模型拥有自己独立的数据库(或其他持久存储)。  DDD中其他对于划分服务有参考价值的设计策略 :上下文映射(Context Map) 共享内核(Shared Kernel) 客户-供应商(Customer-Supplier)顺从者(Conformist)  防崩溃层(Anticorruption Layer) 隔离通道(Separate Way) 开放主机服务(Open Host Service)

判断良好服务的标准****:********1.****自身保持高内聚,有自己独立的领域模型(上下文) 2.封装内部变化,通过API对外暴露功能 :只有本服务自身的代码可访问本领域模型的数据库 ;其他系统只能通过本服务暴露的API间接访问本服务的数据 3. 与其他服务保持松耦合,能够独立修改和部署 ;依赖本服务的其他系统不必同时修改和部署 4.能够实现服务自治,可独立进化(Domain-Driven Design领域驱动设计)

14. 请比较 Dubbo 还是 Spring Cloud 的区别?

总体架构:Dubbo包含ProviderConsumerRegistryMonitorContainer- Provider:暴露服务的提供方,可以通过 jar 或者容器的方式启动服务。- Consumer:调用远程服务的服务消费方。- Registry:服务注册中心和发现中心。- Monitor:统计服务和调用次数,调用时间监控中心。(Dubbo 的控制台页面中可以显示,目前只有一个简单版本。)- Container:服务运行的容器。

Spring Cloud包含Service Provider****,Service ConsumerEureKa Server。****- Service Provider: 暴露服务的提供方。- Service Consumer:调用远程服务的服务消费方。- EureKa Server: 服务注册中心和服务发现中心。从整体架构上来看,二者模式接近,都需要服务提供方,注册中心,服务消费方。

****架构核心要素:****Spring Cloud在开发过程中只要整合 Spring Cloud 的子项目就可以顺利的完成各种组件的融合,而Dubbo 却需要通过实现各种 Filter 来做定制,开发成本以及技术难度略高。****协议:****Dubbo 使用 RPC 通讯协议;Spring Cloud 使用 HTTP 协议的 REST API。****性能比较:****Dubbo 支持各种通信协议,而且消费方和服务方使用长链接方式交互,通信速度上略胜 Spring Cloud,如果对于系统的响应时间有严格要求,长链接更合适。****服务依赖方式:****Dubbo 服务依赖略重,需要有完善的版本管理机制,但是程序入侵少。Spring Cloud 通过 Json 交互,省略了版本管理的问题,但是具体字段含义需要统一管理,自身 Rest API 方式交互,为跨平台调用奠定了基础。****组件运行流程:****业务部署方式相同,都需要前置一个网关来隔绝外部直接调用原子服务的风险。Dubbo 需要自己开发一套 API 网关,而 Spring Cloud 则可以通过 Zuul 配置即可完成网关定制。使用方式上 Spring Cloud 略胜一筹。

15. Service Mesh ****(网格服务)****是什么机制?请加以描述

最后

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

❤️ 谢谢支持,喜欢的话别忘了 关注、点赞哦。

前端校招面试题精编解析大全

15. Service Mesh** ****(网格服务)****是什么机制?请加以描述

最后

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

❤️ 谢谢支持,喜欢的话别忘了 关注、点赞哦。

[外链图片转存中…(img-t36DbBQJ-1714850389206)]

  • 23
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值