拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 java语言中final static 和 static final 的区别是什么

java语言中final static 和 static final 的区别是什么

白鹭 - 2023-06-16 2435 0 2

最近在看面试题在讲解final知识点的时候看到如下代码:

private final static String API_RTN_SUCCESS = "0";
private final static String API_RTN_ERROR = "1";

public static final String SHARED_PREFERENCE_CONFIG = "shared_preference_config";
public static final String STARTUP_SETTING_KEY = "startup_setting";

它们之间有什么不同点或者相同点吗?或者它与private或者public有关系吗


在stackoverflow中搜到了答案如下:


完全没有区别。根据 8.3.1 - 类 - Java 语言规范的字段修饰符 :https://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.3.1

如果两个或更多(不同的)字段修饰符出现在字段声明中,虽然不是必需的,但通常它们的出现顺序与上面在 FieldModifier 的产生式中显示的顺序一致。

对于字段,上述产生式按以下顺序列出修饰符:

@Annotation public protected private static final transient volatile

对于方法:

@Annotation public protected private abstract static final synchronized native strictfp


总结:

    

    其实他们是一样的。修饰符的顺序并不重要。请注意,相同的规则适用于Java 中使用修饰符的所有上下文。

但是,大多数 Java 风格指南都建议/强制要求修饰符采用相同的特定顺序。在这种情况下,它是public static final



标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *