生成されたバイトコードを調べて、自分で結論を出すことができます:
ソースコード #1
public class Clazz {
public static void main(String[] args){
Clazz.method1();
Clazz.method2();
}
public static void method1() {
}
public static void method2() {
}
}
バイトコード #1
Compiled from "Clazz.java"
public class Clazz {
public Clazz();
Code:
0: aload_0
1: invokespecial #8 // Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: invokestatic #16 // Method method1:()V
3: invokestatic #19 // Method method2:()V
6: return
public static void method1();
Code:
0: return
public static void method2();
Code:
0: return
}
ソースコード #2
public class Clazz {
public static void main(String[] args){
Clazz.method1();
}
public static void method1() {
method2();
}
public static void method2() {
}
}
バイトコード #2
Compiled from "Clazz.java"
public class Clazz {
public Clazz();
Code:
0: aload_0
1: invokespecial #8 // Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: invokestatic #16 // Method method1:()V
3: return
public static void method1();
Code:
0: invokestatic #21 // Method method2:()V
3: return
public static void method2();
Code:
0: return
}
結果
生成されたバイトコードは静的メソッドと同じです