2016-03-11 7 views
0

Недавно я заинтересовался Java-байт-кодом, и я создал следующую программу Hello World.Java байт-код с Jasmin: почему сообщение не печатается на экране?

Печатается «Hello World», однако я не могу понять, почему «Создание удивительного объекта» не печатается. Можете ли вы помочь мне понять, что я делаю неправильно?

.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 
+0

Вы никоим образом не выполняете конструктор. – Antimony

ответ

1

Я не знаю много о Java байткод, но мне кажется, вы не создаете экземпляр HelloWorld в main. Если вы не создадите экземпляр, конструктор не будет вызван, поэтому вы его получите. :)

 Смежные вопросы

  • Нет связанных вопросов^_^