面试记录(供自己以后学习)
1、java中关于final关键字的使用
?? ? final可以修饰类、方法、变量。
?? ?(1)final在修饰类的时候,此类不能被继承。(引申:final不能修饰抽象类);
?? ?(2)final在修饰方法时,此方法不能被重写,但是可以被继承;final不能修饰构造方法的;
?? ?(3)final在修饰变量时,此变量只能被赋值一次(初始化或者构造函数赋值),赋值后不允许被修改;
?
2、errorPage的相关内容
?? ? (1)jsp页面中使用page指令:<@page errorPage="error.jsp" /> 来制定错误页面,在error.jsp页面中,也需要使用page指令来指定这个页面是用来做错误处理的 <@page isErrorPage="true" />,只有这样,才能在error.jsp页面中访问容器为错误页面提供的exception对象。
?? ? (2)在web.xml中,可以使用exception-type标签或者http状态码来定义错误页面。例如:
?
根据异常类声明错误页面:
?
<error-page> <exception-type>java.io.IOException</exception-type> <location>/error.jsp</location> </error-page>
?exception-type必须指定是一个throwable,而且在容器的路径下能够找到这个类。
?
根据http状态码声明错误页面:
?
<error-page> <error-code>404</error-code> <location>/error.jsp</location> </error-page>
?
?需要注意的是:
(1)无论是exception-type还是error-code,其中的location必须以“/”开头,也就是相对于容器的路径;
(2)在web.xml中可以声明多个error-page标签,每个标签中只能出现一个exception-type或一个error-code。
?
3、数据表中有1000条数据,在执行select查询的同时,有一条insert语句同时执行,请问select最终返回的是几条语句?是1000还是1001?(此答案是考官给的答案,不知正确与否,有关数据库事务隔离机制,需要一定的时间仔细研究并进行过实际的操作,才能给出正确的结论,以下结论仅供参考)
sql2000是1001条;sql2005及以上版本是1000条。原因:sql2000是锁机制的,只要有改变数据库数据的语句,就要限制性这些语句,最终select返回改变之后的。sql2005及以上版本是没有使用这个机制,所以,select和insert没有关系。