0

私は最近 Java バイトコードに興味を持ち、次の Hello World プログラムを作成しました。

「Hello World」は出力されますが、「Creating awesome object」が出力されない理由がわかりません。私が間違っていることを理解するのを手伝ってもらえますか?

.class public HelloWorld
.super java/lang/Object

.method public <init>()V
    .limit stack 2

    aload_0  ; push 'this' unto stack
    invokespecial java/lang/Object/<init>()V  ; invoke constructor

    getstatic java/lang/System/out Ljava/io/PrintStream;
    ldc "Creating awesome object!"
    invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V

    return
.end method

.method public static main([Ljava/lang/String;)V
    .limit stack 2

    getstatic java/lang/System/out Ljava/io/PrintStream;
    ldc "Hello world"
    invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V

    return
.end method
4

1 に答える 1

1

Java バイトコードについてはよくわかりませんが、HelloWorldinのインスタンスを作成していないように思えますmain。インスタンスを作成しない場合、コンストラクターは呼び出されないため、これで完了です。:)

于 2016-03-11T16:23:10.747 に答える