您是正确的声明列表最终意味着您无法将列表变量重新分配给另一个对象.
另一个问题(我想)是
public class SomeClass {
private static final ArrayList list = new ArrayList();
}
VS
public class SomeClass {
ArrayList list = new ArrayList();
}
我们轮流使用每个修饰符.
private只有这个类(SomeClass)才可以访问列表
static意味着SomeClass的所有实例只能有一个列表变量的实例来共享.列表实例与SomeClass类相关联,而不是每个新的SomeClass实例.如果一个变量是非静态的,它被称为一个实例变量
最终,你知道意味着你不能重新分配列表变量另一个值.
在第二个声明中没有修饰符,所以变量是一个实例变量,它也获得了包私有访问保护(有时称为默认访问保护).这意味着这个类(SomeClass)和同一个包中的其他类可以访问变量.
您可以在这里找到更多关于公共,私人和私人包的信息:Access control
您可以在这里找到关于final和static的更多信息:Class variables