### 用友面试题知识点详解 #### 1. Web中的Forward和Redirect的区别 在Web开发中,`forward`和`redirect`是控制页面跳转的两种常见方式,它们的主要区别在于处理请求的方式以及对客户端的影响。 - **Forward**:这是一种服务器端内部的请求转发,即在服务器端内部将控制权从一个Servlet传递给另一个Servlet或JSP页面。这种跳转不会改变客户端浏览器的URL,因此对于用户来说似乎是无缝的。Forward操作更高效,因为它避免了重复的HTTP请求和响应过程,同时也能够帮助隐藏实际的链接路径,增强安全性。 - **Redirect**:相比之下,`redirect`是完全的重定向,相当于在服务器端告诉客户端去访问一个新的URL。这会导致浏览器发送一个新的请求到指定的URL,因此浏览器地址栏会显示新的URL。Redirect通常用于需要跨域跳转或更改URL的情况,但由于涉及额外的HTTP请求,效率较低。 #### 2. XML解析中的DOM与SAX - **DOM (Document Object Model)**:这是一种基于树状结构的XML解析方式。DOM解析器会将整个XML文档加载到内存中,形成一个树形结构,便于随机访问和修改。然而,这种方式在处理大型文件时效率低下,因为整个文档都需要在内存中驻留,这可能导致内存消耗过大。 - **SAX (Simple API for XML)**:与DOM不同,SAX采用事件驱动的解析策略,逐行读取XML文档,当遇到特定的元素或事件时触发相应的事件处理器。这种方式不需要将整个文档加载到内存中,更适合于处理大型文件和顺序访问需求。 #### 3. JNDI、JMS、JTA、RMI的意义 - **JNDI**:Java Naming and Directory Interface,提供了一种标准的API用于查找和访问命名和目录服务,类似于JDBC在数据库连接中的角色,简化了开发者访问不同命名和目录服务的复杂度。 - **JMS**:Java Messaging Service,是Java平台上的消息中间件规范,支持点对点和发布/订阅的消息模型,用于实现异步通信和解耦系统组件。 - **JTA**:Java Transaction API,为J2EE平台提供了分布式事务管理服务,通过UserTransaction接口支持事务的开启、提交和回滚。 - **RMI**:Remote Method Invocation,是Java提供的用于开发分布式应用的API,允许在不同虚拟机之间调用远程对象的方法,增强了Java在分布式环境下的应用能力。 #### 4. 单例模式 单例模式确保一个类只有一个实例,并提供一个全局访问点。给定的代码示例中存在语法错误,正确的代码应为: ```java public class Singleton { private static Singleton instance = new Singleton(); private Singleton() {} public static Singleton getInstance() { return instance; } } ``` #### 5. 数据库中的Left Join `LEFT JOIN`是一种SQL查询语句,用于返回左表中的所有记录和右表中匹配的记录。如果右表没有匹配的记录,则结果集中右表的字段值为NULL。这种连接方式常用于需要确保左表所有记录都被包含在结果集中的场景。 #### 6. EJB中的Session Bean和Entity Bean - **Session Bean**:主要用于执行业务逻辑,如数据处理、事务管理和协调其他EJB或服务的调用,是非持久性的。 - **Entity Bean**:代表持久化对象,用于映射数据库中的记录,具有持久化状态,用于表示领域模型。 #### 7. 抽象类与接口的区别 - **多重继承**:一个类可以实现多个接口,但只能继承一个抽象类。 - **方法实现**:抽象类可以有非抽象方法,而接口中所有方法默认都是抽象的。 - **变量声明**:抽象类可以声明和使用变量,接口不可以。 - **访问修饰符**:抽象类中的方法可以有多种访问修饰符,而接口中的方法默认为public,且不允许指定访问修饰符。 - **构造函数**:抽象类可以定义构造函数,接口不可以。 #### 8. 对象序列化的含义 Java序列化是指将对象的状态转换成字节流,以便于在网络上传输或保存到磁盘中,从而实现对象的持久化或远程传输。这是Java RMI、EJB等技术的基础。 #### 9. 数据库中的锁类型 数据库中的锁主要用于并发控制,防止数据在多用户环境中被同时修改,主要有以下两种类型: - **排他锁(X锁)**:加锁后,不允许其他事务对该数据进行任何读写操作,用于确保数据的一致性和完整性。 - **共享锁(S锁)**:加锁后,允许其他事务读取但不能修改数据,用于读取操作,可避免数据冲突。
- 粉丝: 3
- 资源: 18
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助