Java面试常见框架难题及对比:SQLServer vs Oracle与Struts1 vs Struts2

需积分: 33 2 下载量 35 浏览量 更新于2024-07-25 收藏 191KB DOC 举报
Java面试中,常见的框架问题是面试官评估应聘者技术深度和实践经验的关键部分。本文将讨论两个主要的话题:数据库系统的选择——Sql Server与Oracle的区别,以及Struts1与Struts2在Web应用开发框架中的不同点。 首先,关于数据库系统的选择,面试者可能会被问到为什么在Windows平台上的SQL Server不如Oracle具有优势: 1. **开放性**:Oracle支持跨平台运行,可以在Windows、Unix等多个操作系统上部署,提供更多的灵活性和选择。而SQL Server受限于Windows环境,稳定性受操作系统限制,尤其在处理大规模数据库时不如Oracle长久可靠。 2. **可伸缩性和并行性**:Oracle的并行服务器设计允许通过多个节点共享资源,提供高可用性和扩展性,适用于需要高度伸缩性的场景。相比之下,SQL Server在这方面的技术相对不成熟。 3. **性能**:Oracle在多用户环境下表现出色,保持着开放平台下的TPC-D和TPC-C世界纪录,性能上更胜一筹。 4. **客户端支持**:Oracle支持多种工业标准,如ODBC、JDBC和OCI,能与各种应用程序无缝连接,而SQL Server则仅限于Windows客户端,主要通过ADO、DAO、OLEDB和ODBC。 5. **操作简易性**:SQL Server以图形界面为主,操作相对直观,但可能缺乏高级功能;Oracle提供图形和命令行两种方式,且在不同平台间操作一致性高。 6. **使用风险**:由于Oracle有着丰富的开发经验和向下兼容性,迁移风险较低。而SQL Server可能需要对代码进行较多调整,并可能存在兼容性问题。 其次,面试者可能会被询问关于Struts框架的历史和升级版本差异: **Struts1与Struts2的区别**: - **Action实现类**:Struts1要求Action类必须继承一个抽象基类,这种设计限制了灵活性,使用的是抽象类而非接口。而Struts2的Action类可以实现Action接口或自定义接口,提供了更大的定制空间。 - **控制流和灵活性**:Struts2引入了MVC(Model-View-Controller)架构,使得代码更易于维护和扩展,同时提供了Action类和结果(Result)的分离,增强了代码的灵活性。 - **依赖注入和配置**:Struts2支持依赖注入,简化了组件管理和配置,而Struts1则依赖XML配置文件较多。 面试者应熟悉这些区别,以展示对Java技术栈全面的理解,包括数据库选择背后的考量和Web框架发展中的演进。掌握这些基础知识有助于在实际项目中做出明智的技术决策。