特性finalconst
值确定时间运行时 (Runtime)编译时 (Compile-time)
内存与性能普通对象,每次使用都会创建新实例常量池复用,相同值共享同一内存,性能更优
变量可修改性变量引用不可变变量引用不可变
对象内容可变性对象内部可以修改对象本身及其内容完全不可变
适用场景值需要在运行时才能确定,如 DateTime.now()值在编译时就能确定,如 3.14、"hello"
类成员变量可以,final 修饰不可以,需要使用 static const
final list = [1, 2];
// list = [3, 4]; // ❌ 错误:不能重新赋值
list.add(3);      // ✅ 正确:可以修改列表内容
print(list);      // 输出 [1, 2, 3]
const list = [1, 2];
// list = [3, 4]; // ❌ 错误:不能重新赋值
// list.add(3);   // ❌ 错误:不能修改内容