软件开发面试题及答案.doc

上传人:h**** 文档编号:1372137 上传时间:2019-02-23 格式:DOC 页数:8 大小:52KB
下载 相关 举报
软件开发面试题及答案.doc_第1页
第1页 / 共8页
软件开发面试题及答案.doc_第2页
第2页 / 共8页
软件开发面试题及答案.doc_第3页
第3页 / 共8页
软件开发面试题及答案.doc_第4页
第4页 / 共8页
软件开发面试题及答案.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、1、 请讲一下 struts 的流程 答: 用户提交表单 Struts根据表单的请求路径,在 web.xml中指定 servlet,并根据 元素读取 servlet 的配置信息 ActionServlet 或者扩展的 ActionServlet 接收请求,并根据请求的路径来判断调用哪一个 action,即 action 元素中的 path 路径,再根据 action 元素中的 type 属性,用来指定处理请求的逻辑 action(属于控制器部分),再根据其 name 属性来绑定 form-bean,即创建一个 HelloForm 对象,并把用户提交的表单数据传给 ActionForm 对象,这

2、个对象保存在 scope 设置的范围内。 如果 action的 validate属性设置为 true,则 ActonServlet就调用 HelloForm对象的 validate()方法,对表单进行验证。 ActionServlet 查找 action 是否存在,如果不存在就创建一个实例,然后调用 HelloAction 的 execute()方法。 通过 execute()方法中的 逻辑验证后,执行相关的业务逻辑,最后调用ActionMapping.findForward(“ SayHello” )方法。其中的参数 SayHello 与 struts-config.xml文件中的 acti

3、on 元素的 forword 属性值对应,则就将请求转发到“ hello.jsp”页面,结束。 2、 一条 SQL语句的执行顺序是怎么样的? 答: 1、 from 子句组装来自不同数据源的数据; 2、 where 子句基于指定的条件对记录行进行筛选; 3、 group by 子句将数据划分为多个分组; 4、使用聚集函数进行计算; 5、使 用 having 子句筛选分组; 6、计算所有的表达式; 7、使用 order by 对结果集进行排序。 3、 CMM是什么? CMM 是指 “ 能力成熟度模型 ” ,其英文全称为 Capability Maturity Model for Software,

4、英文缩写为SW-CMM,简称 CMM。它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。 CMM 的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。 4、 XML有几种解析方式? 答: 有 DOM,SAX,STAX 等 DOM:处理大型文件时其性能下降的非常厉害。这个问题是由 DOM 的树结构所造成的,这种结构占用的内存较多,而且 DOM 必须在解析文件之前把整个文档装入内存 ,适合对 XML 的随机访问 SAX:不现于 DOM,SAX 是事件驱动型的 XML 解析方式。它

5、顺序读取 XML 文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理 XML 文件,适合对 XML 的顺序访问 5、 EJB分为几种 BEAN? 答: EJB 依照特性的不同,目前区分为三种,分别是 Session Bean , Entity Bean ,以及 Message Driven Bean 。 6、 什么是 UML? 答: 统一建模语言 ( UML 是 Unified Modeling Language 的缩写 )是用来对软件密集系统进行可视化建模的一种语言。 UML 为面向对象开发系统的

6、产品进行说明、可视化、和编制文档的一种标准语言。 7、 你使用过 UML 哪些? 答: UML中包括九种图:用例图、类图、对象图、状态图、时序图、协作图、活动图、组件图、配置图。 )用例图( Use Case Diagram) 它是 UML中最简单也是最复杂的一种图。说它简单是因为它采用了面向对象的思想,又是基于用户视角的,绘制非常容易,简单的图形表示让人一看就懂。说它复杂是因为用例图往往不容易控制,要么过于复杂,要么过于简单。 用例图表示了角色和用例以及它们之间的关系。 )类图( Class Diagram) 是最常用的一种图,类图可以帮助我们更直观的了解一个系统的体系结构。通过关系和类表示

7、的类图,可以图形化的方式描述一个系统的设计部分。 )对象图( ) 对象图是类图的实例,几乎使用与类图完全相同的标识。它们的不同点在于对象图显示类的多个对象实例,而不是实例的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。 )状态图 描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的时间做出反应的。通常创建一个 UML 状态图是为了以下的研究目的:研究类、角色、子系统、或组件的复杂行为。 )时序图 又称顺序图,描述了对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。 顺 序图由一组对象构成,每个对象分别带有一条竖线,称

8、作对象的生命线,它代表时间轴,时间沿竖线向下延伸。顺序图描述了这些对象随着时间的推移 相互之间交换消息的过程。消息用从一务垂直的对象生命线指向另一个对象的生命线的水平箭头表示。图中还可以根据需要增加有关时间的说明和其他注释。 )协作图 协作图用于显示组件及其交互关系的空间组织结构,它并不侧重于交互的顺序。协作图显示了交互中各个对象之间的组织交互关系以及对象彼此之间的链 接。与序列图不同,协作图显示的是对象之间的关系。另一方面,协作图没有将时间作为一个 单独的维度,因此序列号就决定了消息及并发线程的顺序。协作图是一 个介于符号图和序列图之间的交叉产物,它用带有编号的箭头来描述特定的方案,以显示在

9、整个方案过程中消息的移动情况。 协作图用途: 通过描绘对象之间消息的移动情况来反映具体的方案。 显示对象及其交互关系的空间组织结构,而非交互的顺序。 )活动图( Activity Diagram) UML活动图记录了单个操作或方法的逻辑,单个用户案例,或者单个业务流程的逻辑。描述系统中各种活动的执行顺序,通常用于描述一个操作中所要进行的各项活动的 执行流程。同时,它也常被用来描述一个用例的处理流程,或者某种交互流程。 活动图由一些活动组成,图中同时包括了对这些活动的说明。当一个活动执行完毕之后,控制将沿着控制转移箭头转向下一个活动。活动图中还可以方便地描述控制转移的条件以及并行执行等要求。 )

10、组件图( Component Diagram) 组件图是用来反映代码的物理结构。从组件图中,可以了解各软件组件(如源代码文件或动态链接库)之间的编译器和运行时依赖关系。使用组件图可以将系统划分为内聚组件并显示代码自身的结构。 组件图的主要目的是显 示系统组件间的结构关系。 )配置图 配置图描述系统中硬件和软件的物理配置情况和系统体系结构。 在配置图中,用结点表示实际的物理设备,如计算机和各种外部设备等,并根据它们之间的连接关系,将相应的结点连接起来,并说明其连接方式。在结点里面,说明分配给该结点上运行的可执行构件或对象,从而说明哪些软件单元被分配在哪些结点上运行 8、 存储过程和函数的区别?

11、答:存储过程是用户定义的一系列 sql 语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种 类型的值并且不涉及特定用户表。 9、 事务是什么? 答:事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务: 原子性:事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。 一致性:事务在完成时,必须使所有的数据都保持一致状态。 在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据

12、结构(如 B 树索引或双向链表)都必须是正确的。 隔离性:由并发事务所作的修改必 须与任何其它并发事务所作的修改隔离。 事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。 持久性:事务完成之后,它对于系统的影响是永久性的。 该修改即使出现系统故障也将一直保持。 10、 游标的作用?如何知道游标已经到了最后? 答:游标用于定位结果集的行,通过判断全局变量 FETCH_STATUS 可以判断是否到了最后,通常此变量

13、不等于 0 表示出错或到了最后。 11、 触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。 答:事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。 12、 访问 null 的对象时会引发 NullPointerException。另一种情况就是JAVA 允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用 throw 关键字引发异常。所有的异常都是 java.lang.Thowable 的子类。 28

14、、 请说出你所知道的线程同步的方法 答: wait():使一个线程处于等待状态,并且释放所持有的对象的 lock。 sleep(): 使 一个 正 在运 行的 线 程处 于睡 眠 状态 , 是一 个静 态 方法 ,调 用 此方 法要 捕 捉InterruptedException 异常。 notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时 候,并不能确切的唤醒某一个等待状态的线程,而是由 JVM 确定唤醒哪个线程,而且不是按优先级。 Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。 29、 JSP的内置对象及方法 答

15、: request 表示 HttpServletRequest 对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取 cookie, header, 和 session 数据的有用的方法。 response 表示 HttpServletResponse 对象,并提供了几个用于设置送回 浏 览器的响应的方法(如 cookies,头信息等) out 对象是 javax.jsp.JspWriter 的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。 pageContext 表示一个 javax.servlet.jsp.PageContext 对象。它是用于方便存取各种范围的名字空间、

16、 servlet 相关的对象的 API,并且包装了通用的 servlet 相关功能的方法。 session 表示一个请求的 javax.servlet.http.HttpSession 对象。 Session 可 以存贮用户的状态信息 applicaton 表示一个 javax.servle.ServletContext 对象。这有助于查找有关 servlet 引擎和 servlet 环境的信息 config 表示一个 javax.servlet.ServletConfig 对象。该对象用于存取 servlet 实例的初始化参数。 page 表示从该页面产生的一个 servlet 实例 30、

17、 四种会话跟踪技术 答: 会话作用域 ServletsJSP 页面描述 page 否是代表与一个页面相关的对象和属性。一个页面由一个编译 好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示。这既包括 servlet 又包括被编译成 servlet 的 JSP 页面 request 是是代表与 Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件(由于 forward 指令和 include 动作的关系) session 是是代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求 application 是是代表与整个 Web 应用程序相关的对象和属性。这实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。