### Java开发笔记知识点详解 #### Static与Final - **Final**: 在Java中,`final`关键字主要用于声明不可变的对象、方法或类。它可以用于修饰属性、方法和类。 - **修饰属性**: `final`修饰的属性可以在编译期或运行期初始化,一旦初始化后便不可更改。对于在运行期初始化的`final`属性,不同对象可以拥有不同的值。 - **修饰方法**: 被`final`修饰的方法不允许在子类中被重写。 - **修饰类**: 如果一个类被声明为`final`,则该类不能被继承。 - **注意事项**: - 对于基本数据类型,`final`将值锁定为常量。 - 对于对象引用,`final`将引用锁定为指向特定对象的常量,但对象的状态是可以改变的。 - **Static**: `static`关键字用于声明类级别的元素,这些元素不依赖于任何特定实例。 - **修饰属性**: `static`修饰的属性属于类级别,所有对象共享同一份属性值。 - **修饰方法**: `static`方法可以直接通过类名调用,无需创建对象。 - **修饰代码段**: 静态代码段会在类加载时执行。 - **修饰内部类**: 可以创建静态内部类,这种内部类不依赖于外部类的实例。 #### Super与This - **Super**: `super`关键字用于访问父类的成员。 - **调用父类构造器**: 子类构造器中可以通过`super(参数)`调用父类的构造器。 - **访问父类成员**: 当子类与父类具有同名成员时,子类可通过`super.变量名`或`super.方法名(参数)`来访问父类的成员。 - **This**: `this`关键字用于引用当前对象。 - **调用本类其他构造器**: 构造器中可以通过`this(参数)`调用本类中的另一个构造器。 - **解决二义性**: 当局部变量与成员变量同名时,可通过`this.变量名`明确指定成员变量。 - **注意事项**: - 调用`super()`和`this()`必须放在构造器的第一行。 - `super()`和`this()`不能出现在同一个构造器中,因为这会导致逻辑错误。 #### 编码 - **Unicode转String**: 在Java中,可以使用特定的方法或库来处理Unicode编码转换。例如,自定义方法`Common.unicode2String(str)`用于将Unicode字符串转换为普通字符串。 #### Session - **Session管理**: `HttpSession`接口提供了管理用户会话的功能。 - **获取Session**: 通过`HttpSession session = req.getSession();`来获取用户的会话。 - **设置和删除属性**: 可以使用`session.setAttribute(name, value);`和`session.removeAttribute(name);`来设置和删除会话属性。 #### Cookie - **Cookie管理**: - 创建Cookie: `Cookie cookieName = new Cookie(name, value);` - 设置路径: `cookieName.setPath("path");` - 设置过期时间: `cookieName.setMaxAge(time);` - 添加Cookie: `resp.addCookie(cookieName);` #### 请求转发与重定向 - **请求转发**: - 实现方式: 使用`RequestDispatcher`接口中的`forward(req, resp);`方法将请求转发到服务器上的另一个资源。 - 特点: 客户端地址栏不会发生变化,转发后的页面无法直接通过URL访问。 - **重定向**: - 实现方式: 使用`response.sendRedirect(url);`方法实现。 - 特点: 客户端地址栏会发生变化,重定向后的页面可以通过URL直接访问。 总结来说,`final`和`static`关键字是Java语言中非常重要的特性,用于控制对象和类的行为。`super`和`this`关键字则用于处理类继承中的成员访问问题。此外,理解如何管理和操作HTTP会话(`session`)和Cookie是Web开发的基础,而掌握请求转发和重定向机制则是实现复杂Web应用的关键。
剩余7页未读,继续阅读
- 粉丝: 10
- 资源: 34
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助