"这份资料是2009年福富公司针对海外电信部门的一场Java笔试题,涵盖了JSP、Servlet、Struts、Spring、Hibernate等核心Java Web技术,以及C/C++相关的基础知识,旨在考察候选人的编程基础和对框架的理解。"
详细知识点:
1. **JSP基础**: JSP(Java Server Pages)是一种动态网页技术,允许开发者将Java代码嵌入HTML中来生成动态内容。9大对象包括:page、request、response、session、application、out、config、exception、pageContext。这些对象提供了与HTTP请求交互的能力,例如获取请求参数、设置响应头、管理会话等。
2. **Servlet基础**: Servlet是Java编写的服务端组件,用于扩展Web服务器的功能。Tomcat是一个流行的Servlet容器,它遵循Java Servlet和JavaServer Pages规范,处理HTTP协议。Tomcat工作原理包括接收请求、解析请求、调用Servlet、生成响应并返回给客户端。
3. **Struts MVC模式**: Struts是一个基于MVC设计模式的Java Web框架,用于简化开发过程。MVC模式将应用程序分为Model(模型)、View(视图)和Controller(控制器)三个部分,分别负责数据处理、用户界面展示和用户输入的控制。
4. **Spring框架特征**: Spring以其依赖注入(DI,Dependency Injection)和面向切面编程(AOP,Aspect-Oriented Programming)为核心,提供了完整的应用开发框架。DI帮助解耦组件间的依赖关系,AOP则允许在不修改原有代码的情况下添加新的功能或横切关注点。
5. **Hibernate基础及五大接口**: Hibernate是一个对象关系映射(ORM)框架,它将数据库操作转化为对Java对象的操作。五大接口包括:Session、SessionFactory、Query、Criteria和Transaction,分别用于数据库会话、会话工厂、SQL查询、对象化查询和事务管理。
6. **Many-to-One配置**: 在Hibernate中,Many-to-One关联表示一个实体可以与多个其他实体关联。配置通常通过XML映射文件或注解完成,定义了关联的实体类、属性映射、外键生成策略等。
7. **C/C++基础知识**:
- long类型在64位系统中通常占8个字节。
- 局部变量通常存储在栈上。
- char数组不能直接赋值给字符串,但可以通过初始化或strcpy函数实现。
- 结构体数组的成员访问需要使用点运算符或箭头运算符,表达式b是正确的。
- sizeof运算符返回结构体的大小,考虑到字节对齐,答案可能是12(取决于编译器和平台)。
- C语言中,字符数组不能直接赋值给字符串常量,a和c都是错误的,d会导致未定义行为。
- x86架构上,字节顺序是小端,输出是1234;SUN SPARC工作站是大端,输出是4321。
8. **函数目的**:
- 函数的主要目的是提高程序的可读性、可维护性和效率,减少代码冗余,而不是减少内存占用,因此d是正确答案。
9. **函数指针类型定义**:
- 在C语言中,定义一个函数指针类型,应使用类似`typedef void (*FUNC)()`的语法,所以a是正确的函数指针类型定义。
这些知识点涵盖了Java Web开发的关键技术和C/C++的基础,是软件工程师面试或笔试中常见的考查点。掌握这些知识有助于理解和构建复杂的企业级应用。