public static
和static public
之间有什么区别?
例如:
static public class MyClass....
或
public static class MyClass....
答案 0 :(得分:5)
虽然在功能方面没有区别(字节代码完全相同),但做想遵循惯例,请访问JLS - 8.3.1. Field Modifiers:< / p>
FieldModifiers:
FieldModifier
FieldModifiers FieldModifier
FieldModifier: one of
Annotation public protected private
static final transient volatile
看到static public
..
我还建议您访问checkstyle。
编辑:
从同一页面链接到class
部分:
http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.1.1
答案 1 :(得分:4)
类声明可能包含类修饰符。
ClassModifiers: ClassModifier ClassModifiers ClassModifier
ClassModifier:其中之一 注释公共保护私人
abstract static final strictfp如果两个或多个(不同的)类修饰符出现在类声明中,则通常(尽管不是必需的)它们在ClassModifier的制作中按照与上面显示的顺序一致的顺序出现 。
所以,public static
是首选,但顺序并不重要。
答案 2 :(得分:2)
在功能方面绝对没有。
语言标准(JLS Java 8 SE版本)允许使它们按任何顺序排列,但包含此部分8.1.1 Class modifiers
:
ClassModifier: Annotation, public,protected,private,abstract,static,final,strictfp。
如果两个或更多(不同的)类修饰符出现在类声明中,那么它是习惯的, 虽然不是必需的,但它们的出现顺序与上面显示的顺序一致 ClassModifier的制作。
因此public static
是首选选项。
答案 3 :(得分:2)
没有区别,但我敢说事实上的标准是public static
。更重要的是,在整个代码中保持一致。
答案 4 :(得分:0)
如果你看一下Java语言规范,section 8.1 Class Declarations,你会发现它没有区别:
ClassDeclaration:
NormalClassDeclaration
EnumDeclaration
NormalClassDeclaration:
{ClassModifier} class Identifier [TypeParameters] [Superclass] [Superinterfaces] ClassBody
ClassModifier:
Annotation public protected private
abstract static final strictfp
{ClassModifier}
表示允许其中一个ClassModifier值出现零次或多次(请参阅2.4 Grammar Notation)。
Section 8.1.1也明确说:
如果同一关键字多次出现作为类声明的修饰符,则为编译时错误。
如果两个或多个(不同的)类修饰符出现在类声明中,那么通常(尽管不是必需的)它们在{的生产中以与上面显示的顺序一致的方式出现 {1}}。