转载请注明出处:https://cloud.tencent.com/developer/article/1425291
static
和 final
,前者表示静态的意思,但这个静态是可以被修改的,
修改的前提是类型不变,而第二个关键字表示最终的意思,一旦变量被这个关键字修饰则不可重新修改变量。
但是对于复合对象,比如List、Map、自定义对象等,又是可以被修改的,对于这点个人觉得 java 的常量的定义
并不够严谨。
public class staticFinalTest { private static final Logger LOG = LoggerFactory.getLogger(staticFinalTest.class); private static final String name = "Tom"; private static String item = "first item"; private static final List<String> initArr = new ArrayList<String>(){{ add("A"); add("B"); add("C"); }}; @Test public void process(){ LOG.info(name); item = "youth!"; LOG.info(item); initArr.add("hello"); LOG.info(initArr.toString()); } }- private 仅当前类内访问
- public 可公共访问
- protect 仅可同包内访问