试题三 (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轻量化的一种努力。对于大型应用系统以及将来可能涉及到能力扩展的中小型应用系统而言,
采用结合使用轻量级框架和重量级框架也不失为一种较好的解决方案。
此题为判断题(对,错)。
此题为判断题(对,错)。
A、列表
B、元组
C、字典
D、集合
瀚云科技有限公司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
A、SCHEDULER=Scrapy-redisschedulerSchedule
B、SCHEDULER='SCRAPYschedulerScheduleCDUPEFILTER_
C、LASSscrap_redis.dupefilterRfpdupefilter
D、dupefilter-class=scrap.dupefilterRfpdupefilter'
A. beego是一个golang实现的轻量级HTTP框架
B. beego可以通过注释路由、正则路由等多种方式完成url路由注入
C. 可以使用bee new工具生成空工程,然后使用bee run命令自动热编译
D. beego框架只提供了对url路由的处理, 而对于MVC架构中的数据库部分未提供框架支持
此题为判断题(对,错)。
请用200字以内的文字说明基于Struts,Spring和Hibernate的轻量级框架与基于EJB的重量级框架解决问题的侧重点有什么不同?