瀚云科技有限公司10月招聘面试题77道2020106

试题三 (25 分)

阅读以下关于 Java 企业级应用系统开发架构选择方面的叙述,在答题纸上回答问题 1 至问题 3。

某软件公司承担了某中小型企业应用软件开发任务,进度要求紧迫。为了按时完成任务,选择合适的企业应用系统开发架构非常重要。项目组在进行方案论证时,项目组成员提出了两种开发思路。

(1)刘工建议采用 J2EE 5.0 和 EJB 3.0 进行开发。理由是 J2EE定义了标准的应用开发体系结构和部署环境,EJB 是 J2EE 的基础和核心。J2EE 5.0 主要目标是简化开发,相比 EJB 2.1,EJB 3.0 具有很多改进和提高。

(2)杜工建议采用 Struts,Spring 和 Hibernate 轻量级开源框架相结合的方式。理由是随着 Java开源项目阵营的发展壮大, 一些基于 POJOs (Plan Old Java Objects)的开源框架被广泛地引入到 Java 企业应用开发中来,与重量级的 EJB 框架相比,这些轻量级的框架有很多优点。 项目组仔细比较分析了两种方案的特点、优点和不足之处。认为杜工和刘工的建议都合理,但是从结合当前项目实际情况出发,最后决定采用杜工的建议。

【问题 1】 (6 分)

Java 企业应用框架一般被划分为三个层次,请用 150 字以内文字说明都有哪三个层次?功能分别是什么?

【问题 2】 (12 分)

请用 200 字以内的文字叙述 Struts,Spring 和 Hibernate 开源框架特点和结合方式。

【问题 3】 (7 分)

请用200字以内的文字说明基于Struts, Spring和Hibernate的轻量级框架与基于EJB的重量级框架解决问题的侧重点有什么不同?


正确答案:




阅读以下关于Java企业级应用系统开发体系结构选择方面的叙述,在答题纸上回答问题1至问题3。

博学公司承担了某中小型企业应用软件开发任务,进度要求紧迫。为了按时完成任务,选择合适的企业应用系统开发体系结构非常重要。因此,首席架构师张博士召集了相关技术人员进行方案讨论,在进行方案论证时,项目组成员提出了两种开发思路。

(1)谢工建议采用J2EE和EJB进行开发。理由是J2EE定义了标准的应用开发体系结构和部署环境,EJB是J2EE的基础和核心。J2EE的主要目标是简化开发。

(2)王工建议采用Struts、Spring和Hibernate轻量级开源框架相结合的方式。理由是随着Java开源项目阵营的发展壮大,一些基于POJOs(PlanOldJavaObjects)的开源框架被广泛地引入到Java企业应用开发中来,与重量级的EJB框架相比,这些轻量级的框架有很多优点。

针对这两种思路,张博士仔细比较和分析了两种方案的特点、优点和不足之处。认为王工和谢工的建议都合理,但是,从结合当前项目实际情况出发,最后决定采用王工建议。

请用200字以内的文字说明基于Struts、Spring和Hibernate的轻量级框架与基于EJB重量级框架解决问题的侧重点有什么不同?


作为重量级框架,EJB框架强调高可伸缩性,适合于开发大型应用系统。在EJB体系结构中,一切与基础结构服务相关的问题和底层分配问题都由容器来处理。另外,EJB容器通过减少数据库访问次数以及分布式处理等方式提供了专门的系统性能解决方案,能够充分解决系统性能问题。
轻量级框架侧重于减少开发的复杂度,相应地它的处理能力便有所减弱(如事务功能弱、不具备分布式处理能力),比较适用于开发小型应用系统。采用轻量框架后,一方面因为采用基于POJOs的方法进行开发,使应用不依赖于任何容器,这可以提高开发调试效率;另一方面轻量级框架多数是开源项目,开源社区提供了良好的设计和许多快速构建工具以及大量现成可供参考的开源代码,这有利于项目的快速开发。轻量级框架的产生并非是对重量级框架的否定,可以说二者是互补的。轻量级框架旨在开发具有更强大,功能更完备的企业应用;而新的EJB版本则在努力简化J2EE,从而使EJB不仅是擅长处理大型应用系统,也能用于开发中小型系统,这也是EJB轻量化的一种努力。对于大型应用系统以及将来可能涉及到能力扩展的中小型应用系统而言,
采用结合使用轻量级框架和重量级框架也不失为一种较好的解决方案。


Scrapy的工程名字不能使用"scrapy",否则爬虫会无法运行。除此以外工程名不受限制。()

此题为判断题(对,错)。


正确答案:错


已经创建好的Scrapy爬虫*.py文件可以直接通过Python来运行()

此题为判断题(对,错)。


参考答案:错


Scrapy中使用Xpath获得的结果调用了.extract方法,结果以()形式生成

A、列表

B、元组

C、字典

D、集合


参考答案:A


瀚云科技有限公司10月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:列举网络爬虫所用到的网络数据包,解析包?可用的回答 : 网络数据包 urllib、urllib2、requests 解析包 re、xpath、beautiful soup、lxml 问题 Q2:什么是Python中的迭代器?可用的回答 :在Python中,迭代器用于迭代一组元素,如列表之类的容器。问题 Q3:什么是猴子补丁?可用的回答 :在运行时动态修改类和模块问题 Q4: scrapy的优缺点?为什么要选择scrapy框架?可用的回答 : 优点: 采取可读性更强的xpath代替正则强大的统计和log系统 同时在不同的url上爬行 支持shell方式,方便独立调试 写middleware,方便写一些统一的过滤器 通过管道的方式存入数据库 缺点: 基于python爬虫框架,扩展性比较差,基于twisted框架, 运行中exception是不会干掉reactor,并且异步框架出错后是不会停掉其他任务的,数据出错后难以察觉 问题 Q5:如何删除python数组的值?可用的回答 :可以使用pop()或remove()方法删除数组元素。这两个函数之间的区别在于前者返回已删除的值,而后者则不返回。问题 Q6:生成器?可用的回答 :生成器的本质就是一个逐个返回元素的函数,即“本质函数”最大的好处在于它是“延迟加载”,即对于处理长序列问题,更加的节省存储空间。即生成器每次在内存中只存储一个值问题 Q7:列举面向对象中带双下划线的魔术方法可用的回答 : _doc_ 表示类的描述信息 _module_ 表示当前操作的对象在哪个模块 _class_ 表示当前操作的对象的类是什么 _init_ 构造方法,通过类创建对象时,自动触发执行 _new_负责创建一个类的对象 _del_ 析构方法,当对象在内存中被释放时,自动触发执行 _call_ 对象后面加括号,触发执行 _dict_ 类或对象中的所有成员 _str_如果一个类中定义了_str_方法,那么在打印 对象 时,默认输出该方法的返回 问题 Q8:如何删除python数组的值?可用的回答 :可以使用pop()或remove()方法删除数组元素。这两个函数之间的区别在于前者返回已删除的值,而后者则不返回。问题 Q9:TCP和UDP的区别?可用的回答 : TCP与UDP基本区别 1. 基于连接与无连接 2. TCP要求系统资源较多,UDP较少 3. UDP程序结构较简单 4. 字节流模式(TCP)与数据报模式(UDP); 5. TCP保证数据正确性,UDP可能丢包 6. TCP保证数据顺序,UDP不保证 具体编程时的区别 1.socket()的参数不同 2.UDP Server不需要调用listen和accept 3.UDP收发数据用sendto/recvfrom函数 4.TCP:地址信息在connect/accept时确定 5.UDP:在sendto/recvfrom函数中每次均 需指定地址信息 6.UDP:shutdown函数无效 问题 Q10:什么又是yield from呢?可用的回答 :简单地说,yield from generator 。实际上就是返回另外一个生成器。算法题面试官常问到的一些算法题目整理如下(大概率会机考):算题题 A1:长印刷名字题目描述如下:Your friend is typing his name into a keyboard. Sometimes, when typing a character c, the key might get long pressed, and the character will be typed 1 or more times.You examine the typed characters of the keyboard. Return True if it is possible that it was your friends name, with some characters (possibly none) being long pressed. Example 1:Input: name = alex, typed = aaleexOutput: trueExplanation: a and e in alex were long pressed.Example 2:Input: name = saeed, typed = ssaaeddOutput: falseExplanation: e must have been pressed twice, but it wasnt in the typed output.Example 3:Input: name = leelee, typed = lleeeleeOutput: trueExample 4:Input: name = laiden, typed = laidenOutput: trueExplanation: Its not necessary to long press any character. Note:name.length = 1000typed.length = 1000The characters of name and typed are lowercase letters.判断 typed 里 是否存在 name,保证顺序的。思路:typed 和 name 各一个指针,命中了就一起走,没命中就typed走。最后判断指针是否指向了name尾。测试地址:https:/ Solution(object): def isLongPressedName(self, name, typed): :type name: str :type typed: str :rtype: bool x = 0 y = 0 x_length = len(name) y_length = len

使用scrapy-redisl构建分布式爬虫,需要在settings.py文件中设置()。

A、SCHEDULER=Scrapy-redisschedulerSchedule

B、SCHEDULER='SCRAPYschedulerScheduleCDUPEFILTER_

C、LASSscrap_redis.dupefilterRfpdupefilter

D、dupefilter-class=scrap.dupefilterRfpdupefilter'


参考答案:A


关于beego框架,下面说法正确的是()

A. beego是一个golang实现的轻量级HTTP框架

B. beego可以通过注释路由、正则路由等多种方式完成url路由注入

C. 可以使用bee new工具生成空工程,然后使用bee run命令自动热编译

D. beego框架只提供了对url路由的处理, 而对于MVC架构中的数据库部分未提供框架支持


参考答案:ABC


基于单文档/视图结构的而框架程序中包含的类有( )、( )、( )和( )。


参考答案:CWinApp、CFrameWnd、CDocument、CView


scrapy框架是第三方库中的web框架。()

此题为判断题(对,错)。


参考答案:×


请用200字以内的文字说明基于Struts,Spring和Hibernate的轻量级框架与基于EJB的重量级框架解决问题的侧重点有什么不同?


正确答案:[解答要点] 轻量级框架侧重于减小开发的复杂度相应的它的处理能力便有所减弱(如事务功能弱、不具备分布式处理能力)比较适用于开发中小型企业应用。 采用轻量框架后一方面因为采用基于POJOs的方法进行开发使应用不依赖于任何容器这可以提高开发调试效率;另一方面轻量级框架多数是开源项目开源社区提供了良好的设计和许多快速构建工具以及大量现成可供参考的开源代码这有利于项目的快速开发。 而作为重量级框架EJB框架则强调高可伸缩性适合于开发大型企业应用。 在EJB体系结构中一切与基础结构服务相关的问题和底层分配问题都由容器来处理。另外EIB容器通过减少数据库访问次数以及分布式处理等方式提供了专门的系统性能解决方案能够充分解决系统性能问题。 轻量级框架的产生并非是对重量级框架的否定可以说二者是互补的。轻量级框架旨在开发具有更强大功能更完备的企业应用;而新EIB 3.0则在努力简化J2EE从而使 EJB不仅仅是擅长处理大型企业系统也利用开发中小型系统这也是EJB轻量化的一种努力。对于大型企业应用以及将来可能涉及到能力扩展的中小型应用采用结合使用轻量级框架和重量级框架也不失为一种较好的解决方案。
[解答要点] 轻量级框架侧重于减小开发的复杂度,相应的它的处理能力便有所减弱(如事务功能弱、不具备分布式处理能力),比较适用于开发中小型企业应用。 采用轻量框架后,一方面因为采用基于POJOs的方法进行开发,使应用不依赖于任何容器,这可以提高开发调试效率;另一方面轻量级框架多数是开源项目,开源社区提供了良好的设计和许多快速构建工具以及大量现成可供参考的开源代码,这有利于项目的快速开发。 而作为重量级框架EJB框架则强调高可伸缩性,适合于开发大型企业应用。 在EJB体系结构中,一切与基础结构服务相关的问题和底层分配问题都由容器来处理。另外,EIB容器通过减少数据库访问次数以及分布式处理等方式提供了专门的系统性能解决方案,能够充分解决系统性能问题。 轻量级框架的产生并非是对重量级框架的否定,可以说二者是互补的。轻量级框架旨在开发具有更强大,功能更完备的企业应用;而新EIB 3.0则在努力简化J2EE从而使 EJB不仅仅是擅长处理大型企业系统,也利用开发中小型系统,这也是EJB轻量化的一种努力。对于大型企业应用以及将来可能涉及到能力扩展的中小型应用采用结合使用轻量级框架和重量级框架也不失为一种较好的解决方案。 解析:作为重量级框架EJB框架则强调高可伸缩性,适合于开发大型企业应用。在EJB体系结构中,一切与基础结构服务相关的问题和底层分配问题都由容器来处理。另外,EJB容器通过减少数据库访问次数以及分布式处理等方式提供了专门的系统性能解决方案,能够充分解决系统性能问题。
轻量级框架侧重于减小开发的复杂度,相应地它的处理能力便有所减弱(如事务功能弱、不具备分布式处理能力),比较适用于开发中小型企业应用。采用轻量框架后,一方面因为采用基于POJOs的方法进行开发,使应用不依赖于任何容器,这可以提高开发调试效率:另一方面轻量级框架多数是开源项目,开源社区提供了良好的设计和许多快速构建工具以及大量现成可供参考的开源代码,这有利于项目的快速开发。
轻量级框架的产生并非是对重量级框架的否定,可以说二者是互补的。轻量级框架旨在开发具有更强大,功能更完备的企业应用;而新EJB 3.0则在努力简化J2EE从而使 EJB不仅仅是擅长处理大型企业系统,也利用开发中小型系统,这也是EJB轻量化的一种努力。对于大型企业应用以及将来可能涉及到能力扩展的中小型应用采用结合使用轻量级框架和重量级框架也不失为一种较好的解决方案。

更多 “瀚云科技有限公司10月招聘面试题77道2020106” 相关考题
考题 作为信息系统服务的一种管理方式,当前大部分信息系统运维管理是基于()展开的。A、逻辑框架B、流程框架C、理论框架D、物理框架正确答案:B

考题 单选题框架是一组可用于不同应用的()集合。A 类B 对象C 模块D 代码正确答案:B解析:暂无解析

考题 问答题简述钢框架和钢筋混凝土框架结构的优缺点。正确答案:钢框架结构优点:自重轻,抗震(振)性能好,施工速度快,缺点:用钢量大,造价高,及耐水。钢筋混凝土框架结构优点:造价低廉,取材方便,耐久性好,可模性好,较广泛应用,无缺点。解析:暂无解析

考题 简述Xunit测试框架具有哪些优点,使得现行的软件单元测试完全基于Xunit框架。正确答案:可以使测试代码与产品代码分开。 针对某一个类的测试代码通过较少的改动便可以应用于另一个类的测试。 易于集成到测试人员的构建过程中,XUnit和Ant的结合可以实施增量开发。 XUnit是公开源代码的,可以进行二次开发。 可以方便地对XUnit进行扩展。

考题 在面试之前,已有一个固定的框架(或问题清单),主考官根据框架控制整个面试的进行,严格按照这个框架对每个被试分别作相同的提问,同时记录下对方的回答。这种面试方式叫做()。A.非结构型面试B.压力式面试C.状况面试D.结构型面试参考答案:D

考题 UAP持久层集成()技术框架,支持多种数据库连接方式以及不同数据库访问正确答案:Hibernate

考题 管理信息系统的适应过程可以通过()。A、在局部的规划框架下选择和开发新的信息系统模块B、在整体性规划框架下选择和开发新的信息系统模块C、直接选择和开发新的信息系统模块正确答案:B

考题 Django,是一个全能型Web框架。以下哪些,也是常见的基于Python的Web框架:()A、TornadoB、FlaskC、GinD、Web2py正确答案:A,B,D

考题 平台mx展现框架提供的控件样式及js类不允许业务项目组以扩展模块的方式进行修改正确答案:错误

考题 单选题作为信息系统服务的一种管理方式,当前大部分信息系统运维管理是基于()展开的。A 逻辑框架B 流程框架C 理论框架D 物理框架正确答案:B解析:作为信息系统服务的一种管理方式,当前大部分信息系统运维管理是基于流程框架展开的。这里的流程是指信息系统运维管理的各种业务过程。