这是 static 最常见的用法之一,相信大家也或多或少会在代码中见到或自己使用过。final 修饰的变量一经赋值,便无法改变,也就是所谓的 常量。而加上了 static,我们就可以绕开具体的对象通过类名直接获得该常量的值。因此,在实际的项目中经常能看到一些类里写了大量用 public static final 修饰的变量以供其它类调用。比起直接把值写在代码中,使用常量既提高了代码可读性,又使我们想要修改这些值的时候可以以一持万,事半功倍。
然而 static final 还有一个非常容易被误解的用法:用 private static final 来修饰 私有 变量。有些人会认为,既然是私有变量,那么就只有本类会访问,设定成 static 并没有意义。也就是说,private static final 和 private final 的作用是相同的: