当前位置: 首页 > 知识库问答 >
问题:

final static和静态最终之间的差异

韶景曜
2023-03-14

我发现了一个代码,其中声明了如下代码

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";

它们之间有什么不同或相同?或者私人的和公共的有什么不同?

共有3个答案

吕霍英
2023-03-14
private static final String API_RTN_ERROR= "1";
private final static String API_RTN_ERROR= "1";
static private final String API_RTN_ERROR= "1";
static final private String API_RTN_ERROR= "1";
final static private String API_RTN_ERROR= "1";
final private static String API_RTN_ERROR= "1";

即使以上都是一样的,前三个的位置是可以互换的。

弘靖琪
2023-03-14

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

然而,大多数Java风格指南建议/强制使用相同的修饰符特定顺序。在这种情况下,它是公共静态final。

严昊昊
2023-03-14

完全没有区别。根据Java语言规范的8.3.1-类-字段修饰符,

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

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

注释公共受保护私有

对于方法

注释公共受保护私有

 类似资料:
  • 问题内容: 我找到了一个代码,它声明了如下代码 它们之间有什么区别或相同?还是与或不同? 问题答案: 完全没有区别。根据 Java语言规范的8.3.1-类-字段修饰符, 如果两个或多个(不同的)字段修饰符出现在字段声明中,则按惯例(尽管不是必需的),它们的出现顺序与上面FieldModifier生产中所示的顺序一致。 对于字段,所述生产按以下顺序列出修饰符: 对于方法:

  • 问题内容: 我一直在 java中的和关键字之间感到困惑。 __ 它们有何不同? 问题答案: static关键字可以在4种情况下使用 静态变量 静态方法 静态代码块 静态嵌套类 首先让我们看一下静态变量和静态方法。 静态变量 它是一个属于类而不属于对象(实例)的变量。 静态变量在执行开始时仅初始化一次。在初始化任何实例变量之前,将首先初始化这些变量。 该类的所有实例共享的单个副本。 静态变量可以通过

  • 问题内容: 请参考下面的代码。运行代码时,我可以更改最终非静态变量的值。但是,如果我尝试更改最终静态变量的值,则会抛出异常。 我的问题是,为什么在非静态最终变量也不会抛出异常,反之亦然。为什么会有所不同? 问题答案: 该解决方案并非没有缺点,它可能无法在所有情况下都有效: 如果在字段声明中将字段初始化为编译时常量,则对该字段的更改可能不可见,因为该最终字段的使用会在编译时用编译时常量替换。 另一个

  • 我正在读一本java的书,在那里我偶然发现了这样一句话: 我真的很困惑为什么它说 我想要一些解释。

  • 问题内容: 通常,最终静态成员,尤其是变量(或静态最终变量,当然可以以任何顺序使用,而不会重叠含义)已广泛用于Java接口中,以定义实现类的 协议行为 ,这意味着实现该类的类(继承)接口必须包含该接口的所有成员。 我无法区分 final 和 final静态 成员。final静态成员是一个声明为final或其他东西的静态成员?在哪些特定情况下应专门使用它们? 永远不能在方法内部,静态方法内部或实例方

  • 有效的最终代码 有更详细的区别吗?