面试常遇到的问题

preview
需积分: 0 11 下载量 117 浏览量 更新于2008-05-16 收藏 285KB DOC 举报
在Java面试中,面试官常常会考察候选人的基础知识和实践经验。以下是一些常见的Java面试问题及其解析: 1. 如何把一段逗号分割的字符串转换成一个数组? 使用`String.split()`方法可以将字符串按照指定分隔符(这里是逗号)切割成数组。 2. `request.getAttribute()`和`request.getParameter()`的区别是什么? `getAttribute()`用于获取请求范围内的对象,返回的是Object类型,而`getParameter()`用于获取请求参数,返回的是String或String[]类型。 3. `response.sendRedirect()`和`forward()`的区别? `sendRedirect()`是客户端重定向,新的HTTP请求会被发送到目标URL;`forward()`是服务器端转发,不会改变浏览器地址栏的URL。 4. `<%@include file="xxx.jsp"%>`和`<jsp:include>`的区别? `@include`是在编译时合并,而`<jsp:include>`在运行时合并,后者可以传入动态参数。 5. List和Map的区别? List是有序的集合,元素可以通过索引访问;Map则存储键值对,通过键来查找值。 6. Struts和Spring自动填充表单参数到Bean的原理? Struts使用ActionForm,Spring MVC使用ModelMapper或直接注入控制器方法,它们都将HTTP请求参数映射到对应的Bean字段。 7. 描述Spring + Hibernate的架构图及所用部分? Spring作为依赖注入容器,管理各种组件,包括Hibernate SessionFactory配置,事务管理,DAO层的对象。Hibernate负责数据库ORM,通过SessionFactory创建Session,执行SQL操作。 8. 英文自我介绍(略)。 9. 翻译Apache Tomcat官网介绍(略)。 10. 代码不足之处: 缺少异常处理,没有关闭数据库连接和Statement,可能导致资源泄漏。应使用try-with-resources语句或finally块关闭资源。 11. HTML表单验证: 可以在JavaScript中进行客户端验证,若为空则显示提示并阻止表单提交。 12. ORM(对象关系映射)和JDBC的不同: ORM简化了数据库操作,将Java对象直接映射到数据库记录,减少手动编写SQL,提高开发效率和可移植性。 13. Weblogic的Server、Machine、Node和Domain: Server是实际运行应用的实例,Machine是硬件或虚拟机抽象,Node是物理主机,Domain是管理和配置的逻辑单元。 14. EJB的7个事务级别(略)。 15. JDBC查询学生成绩单示例代码(略)。 16. Tomcat 5中文乱码问题: 设置请求编码,如`request.setCharacterEncoding("UTF-8")`,并在JSP中使用`<%@page pageEncoding="UTF-8"%>`。 17. finally语句是否一定执行? 在正常控制流或异常处理后,finally块通常会执行,除非程序退出(如System.exit())或JVM崩溃。 以上问题反映了Java开发中的基础和核心概念,对于面试准备非常重要。参与开源项目、持续学习和实践是提升Java技能的关键。