论坛首页 招聘求职论坛

易保面试题目

浏览 33055 次
精华帖 (0) :: 良好帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-09   最后修改:2009-09-03
1.你平时都知道怎么写过高效率的SQL
2.
SPRING 的事务处理你们放在哪一层处理
3.两个DAO进行交互,一个DAO失败了是不是另外一个也失败,那这样怎么办啊·
4.JSF什么个框架· jsf与struts的异同
5.STRUTS  里面ACTIONSERVLET在容器里面是不是就一个?

6 如果你说是5的答案一个,就问,那么多人访问你的应用,那么多线程就一个ActionServlet,安全吗?





1.你平时都知道怎么写过高效率的SQL

原则性一点就是尽量使用索引,具体调整步骤,使用数据库的执行计划进行分析,特别注意增加新索引时可能会导致原来某些查询选取索引的行为改变。

2. SPRING 的事务处理你们放在哪一层处理

业务层

3.两个DAO进行交互,一个DAO失败了是不是另外一个也失败,那这样怎么办啊·

首先两个DAO进行交互,一个DAO失败了是不是另外一个也失败这个是不一定的,这个问题需要看业务需要,一般的情形见问题2,特殊情形如业务需要不用管前面的失败,那么当然后面的应该提交,当然题目中所说的失败应该是发生了异常,我想既然是dao失败了,另外一个dao的调用不会执行了,呵呵,交互代码因为前面发生了异常不会执行到了!

4.JSF什么个框架·

听说过是sun推出来的一个标准组件模型,呵呵,目前公司没有需要所以没有了解过!

5.STRUTS 里面ACTIONSERVLET在容器里面是不是就一个?

ACTIONSERVLET,那么应该是struts1了,所以只有一个

6 如果你说是5的答案一个,就问,那么多人访问你的应用,那么多线程就一个ActionServlet,安全吗?

安全,servlet是在web应用启动时初始化的,初始化后才会接收客户端的访问,所以完成初始化后才会出现活跃度和可见性的问题,而且在初始化完成后ActionServlet的状态不会发生改变,所以是线程安全的

补充:

前面有人问ActionForm,它是线程安全的,因为它和Request是一一对应的

有人回答来回答去就变成了回答Action了,Action显然不是线程安全的,struts的docs上就说了的问题

回答完毕 ^ ^


原文来自: http://www.loveslp.cn/html/2009/0321/9007.php
   发表时间:2008-10-09  
一看就是面试的人水平不昨样,想通过被面试的人来丰富一下自己的知识,无耻之徒<>
0 请登录后投票
   发表时间:2008-10-09  
挺不错的面试题哦
只知道ActionServlet是struts1的核心 请求都通过他转发
0 请登录后投票
   发表时间:2008-10-10  
boborain 写道
一看就是面试的人水平不昨样,想通过被面试的人来丰富一下自己的知识,无耻之徒

为什么这么讲?
你出点有创意的面试题目出来看看?
你回答不出来就认为问题傻,你回答的出来就认为考官傻,我觉得你的Personality有问题啊。。
2 请登录后投票
   发表时间:2008-10-10  
易保  勾起一段往事
0 请登录后投票
   发表时间:2008-10-10  
易保  勾起又一段往事
0 请登录后投票
   发表时间:2008-10-10  
第5个不会,需要看一下源代码
0 请登录后投票
   发表时间:2008-10-10  
第五个我来回答:

1、是的,就一个实例。这个ACTION实例被hashtable实现的缓存存储,如果要是第一次请求该action,则会创建一个新的实例,并把它放入缓存。

2、多用户访问,实际是多线程访问,多线程访问一个方法是没有并发问题的,如果你在execute中操作了action的实例变量,则会导致并发问题。(导致该变量的结果无法预测)

这就要求,我们在action类中声明实例变量一定要慎重,最好避免。

最好的办法是,在execute中不要对action类的实例变量进行任何写操作,当然对execute方法内的局部变量,是可以随便访问的。

本人现在在南京求职,qq:427752734
0 请登录后投票
   发表时间:2008-10-10  
1.你平时都知道怎么写过高效率的SQL ?

巨讨厌这个问题。我是程序员,不是dba,如果你想把逻辑放到数据库去做,别找我,对我来说数据库就是一个存贮工具,如果你的项目非得要复杂查询,那是你项目架构的不够OO.
0 请登录后投票
   发表时间:2008-10-10  
还不是我答……

3.两个DAO进行交互,一个DAO失败了是不是另外一个也失败,那这样怎么办啊·

不是,因为他们没有作为同一个数据库事务来执行。

你可以在程序中手动编写撤销代码,或者给他们声明共同的事务边界,声明共同的事务边界后,数据库就会把他们作为一个完整的事务看待,根据数据库事务的一致性,dbms会自动保证一个操作失败后,撤销执行成功的那个操作(回滚)
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics