面试精华:Oracle自增、JSP对象、Struts1&2对比及字符串处理技巧

需积分: 10 2 下载量 15 浏览量 更新于2024-09-15 收藏 83KB DOC 举报
本文档是一位具有丰富实战经验的IT专业人士分享的面试题整理,主要针对Java技术栈,包括Oracle数据库自增ID的实现、JSP内置对象及其常见操作、Struts框架(1和2版本)的区别、字符串处理(逆序输出和冒泡排序)以及String与StringBuffer的比较。 1. Oracle自增ID实现: 在Oracle数据库中,如果没有使用序列(seq)实现自增ID,可以通过创建触发器来完成。具体做法是在触发器(如after insert)中,查询当前表中ID的最大值加1,然后将这个值赋给新插入记录的ID字段。这种方式确保了ID的唯一递增。 2. JSP内置对象详解: - `request`:代表客户端发送的HTTP请求,提供访问请求头、参数等信息。 - `response`:表示服务器响应,可以设置HTTP状态码、发送数据等。 - `application`:全局范围,用于存储应用共享的数据。 - `session`:每个用户的会话,存储用户特定信息。 - `pageContext`:JSP页面内的上下文,提供页面范围的变量和函数。 - 几个常用方法包括:`sendRedirect()`用于重定向请求,`forward()`用于转发请求,`getAttribute()`和`setAttribute()`用于存储和获取会话或请求属性,`setCharacterEncoding()`设置字符编码。 3. Struts框架对比: - Struts 1和Struts 2的主要区别: - 控制器设计:Struts 1使用Servlet作为主控制器,而Struts 2则使用Filter。 - 数据封装:Struts 1通过ActionForm封装数据,Struts 2通过`params`拦截器将数据绑定到`action`属性上。 - 生命周期:Struts 1中的Action只有一个实例,Struts 2每次请求都会新建一个实例。 - 表达式语言:Struts 1使用JSTL,Struts 2采用OGNL表达式语言。 - 标签库:Struts 1有多个独立的标签库(html、bean、logic),Struts 2整合在struts-tags标签库中。 4. 字符串处理实践: - 逆序输出字符串:使用`toCharArray()`方法将字符串转换为字符数组,然后遍历数组从后向前输出。 - 冒泡排序算法:用于对整数数组进行升序排列,通过两层循环比较元素并交换位置。 5. String和StringBuffer的区别: - String是不可变的,每次操作都会创建新的对象,这在大量字符串拼接时可能导致性能问题。 - StringBuffer是可变的,提供了一系列修改操作方法,如append(),修改效率更高,适合频繁操作字符串的场景。 - String的equals()方法更高效,因为它不需要创建新的对象,而StringBuffer的equals()会重新计算整个字符串的哈希值。 总结起来,这篇文章为准备求职的Java开发者提供了实用的面试技巧,涵盖了数据库、Web开发框架、字符串处理和基础数据结构等核心知识点,有助于提升面试表现和实际编程技能。