当前位置: 首页 > news >正文

最早做视频播放网站wordpress 2011

最早做视频播放网站,wordpress 2011,开发一款电商app需要多少钱,烟台快速建站有哪些公司一、基本概念1. 什么是 final?final 是 Java 中的关键字,表示“不可变”。可用于修饰类、方法、变量(包括局部变量、成员变量、参数)。强调不变性(immutability),提升代码的安全性和性能。二、f…

一、基本概念

1. 什么是 final?

  • final 是 Java 中的关键字,表示“不可变”。
  • 可用于修饰类、方法、变量(包括局部变量、成员变量、参数)。
  • 强调不变性(immutability),提升代码的安全性和性能。

二、final 的不同使用方式

1. 修饰变量(常量)

✅ 特点:
  • 如果是基本类型,则值不能改变。
  • 如果是引用类型,则引用地址不能改变,但对象内部状态可以变化
final int MAX_AGE = 100;
// MAX_AGE = 200; // 编译错误!final List<String> names = new ArrayList<>();
names.add("Alice"); // 合法:对象内容可变
// names = new ArrayList<>(); // 错误:引用地址不可变
⚠️ 注意:
  • final 变量必须在声明时或构造器中初始化(非 static)。
  • static final 常量需在声明时或静态代码块中初始化。
public class Constants {public static final double PI = 3.14159;
}

2. 修饰方法

✅ 特点:
  • 方法不能被子类重写(override)。
  • 提升程序安全性,防止意外修改行为。
class Animal {public final void speak() {System.out.println("Animal speaks");}
}class Dog extends Animal {// public void speak() {} // 编译错误!
}
📌 应用场景:
  • 不希望子类修改的方法逻辑。
  • 提高性能(JVM 可以对 final 方法进行内联优化)。

3. 修饰类

✅ 特点:
  • 类不能被继承。
  • 所有方法默认都是 final 的(即使没有显式声明)。
final class MathUtils {// ...
}// class MyMath extends MathUtils { } // 编译错误!
📌 应用场景:
  • 构建不可变类(如 String)。
  • 确保类的实现不被篡改,增强安全性。

三、final 与线程安全

✅ final 在多线程中的作用:

  • 保证 final 变量的可见性:多个线程访问 final 变量时,不会看到“部分构造”的状态。
  • 避免重排序问题:JVM 会确保 final 变量的初始化顺序正确,避免指令重排导致的并发问题。
public class FinalFieldExample {final int x;public FinalFieldExample(int x) {this.x = x;}// x 的值在线程间可见且不可变
}

四、final 和设计模式

模式使用 final 的原因
单例模式final 变量确保实例唯一且线程安全
工厂方法模式final 方法防止被重写破坏创建逻辑
不可变类(Immutable Class)final 类 + final 字段,构建完全不可变对象

示例:不可变类

public final class Person {private final String name;private final int age;public Person(String name, int age) {this.name = name;this.age = age;}public String getName() { return name; }public int getAge() { return age; }
}

五、常见面试题整理

Q1:final、finally、finalize 有什么区别?

关键字含义
final修饰符,表示不可变
finally异常处理中始终执行的代码块
finalize()对象被回收前调用的方法(已过时)

Q2:为什么 String 被设计为 final?

防止被继承和修改,确保字符串池的安全性、哈希缓存、类加载机制等关键特性。


Q3:final 和 static 一起使用的意义?

表示一个静态常量,属于类而非实例,通常用于全局配置、数学常量等。

public static final String DEFAULT_ENCODING = "UTF-8";

Q4:final 修饰的对象真的不可变吗?

❗不是绝对不可变。如果是引用类型,对象本身的内容仍可变,只是引用不能变。

final StringBuilder sb = new StringBuilder("Hello");
sb.append(" World"); // 允许修改内容
// sb = new StringBuilder(); // 错误:引用不可变

Q5:final 方法能被重载吗?能被覆盖吗?

  • ✅ 可以被重载(overload)
  • ❌ 不能被覆盖(override)

六、最佳实践

实践建议说明
尽量将不需要修改的变量设为 final提高可读性和安全性
对于工具类使用 final class防止被继承,增强封装性
对于公共 API 中的方法使用 final防止子类破坏预期行为
在多线程环境中合理使用 final保证可见性和顺序一致性
构建不可变对象时使用 final 成员变量有助于线程安全和缓存机制

七、扩展阅读

  • 《Effective Java》第 3 版 – 第 15 条:使类和成员尽可能不可变
  • Java Language Specification (JLS) 关于 final 的定义
  • Java 内存模型(JMM)中 final 的语义规范

📌 总结一句话:

final 是 Java 中实现不变性、提高代码安全性与性能的重要关键字,掌握其使用能够写出更健壮、清晰、高效的代码。

http://www.dtcms.com/a/415902.html

相关文章:

  • 合肥做网站123cms工作室怎么注册
  • 中国外贸网站有哪些问题wordpress文件详解
  • Bean 生命周期 后置处理器
  • 医疗网站女性专题网页设计模板做设计有哪些接私活的网站
  • 如何做网站给女朋友旅游网站设计代码模板
  • 技术博客SEO优化全攻略
  • 3.十天通关常见算法100题(第三天)
  • 信阳哪里做网站网站平台建设
  • 网站海外推广方案室内设计联盟 官网
  • 网上做翻译兼职网站好电影介绍网页设计代码
  • Git 重新生成SSH密钥
  • 佛山公益网站制作wordpress logo 修改
  • 【大语言模型 75】训练稳定性保证:Loss spike检测与处理
  • 自然语言处理(02)
  • 手机制作网站主页软件博客网页制作代码
  • 单片机入门的相关工具XCOSnTh
  • 基于寄存器的STM32开发指南:使用Keil MDK创建工程模板
  • 有哪些做场景秀的网站网站优化销售话术
  • 高光谱成像在分析作物长势和产量预估中的应用
  • C++面向对象编程——封装
  • 优秀设计作品网站seo综合查询平台官网
  • 海城区建设局网站工会门户网站建设需求
  • 武汉市最新街景图像数据!
  • 自己动手创建一个公司网站国家通建设通网站
  • Docker(二)—— Docker核心功能全解析:网络、资源控制、数据卷与镜像构建实战
  • 百度网站大全首页网站源码免费下载
  • 网站的策划建设方案书负面信息网站
  • 绍兴网站建设方案推广微信公众平台绑定网站
  • 计算机网路-TCP
  • 做网站用哪个预装系统源码建站之网站建设