私はこのバイトコードを持っている:これは継続ですバイトコードでは、getstaticはどういう意味ですか?
new java.lang.Object
// stack is [newObjectRef]
dup
// Stack is [newObjectRef newObjectRef]
invokespecial void java.lang.Object.<init>()
// Stack is [initializedAsTypeObjectObjectRef]
putstatic java.lang.Object class.a
// variable a has the reference of new object
getstatic java.io.PrintStream java.lang.System.out
// Take the static value of System.out
// Stack is [initializedAsTypeObjectObjectRef System.out]
更新:
> ldc "test" // Stack is
> [initializedAsTypeObjectObjectRef System.out "test"]
> jsr pos.0000026C // call a subrutine invokevirtual void
> java.io.PrintStream.println(java.lang.String) // actually print the
> result // stack is (I think) Empty at this time ?
は翻訳があるん:
Object a = new Object();
a = "test";
System.out.print(a);
は私のスタックは良いですか?
私はout()をよく理解していません。 おそらく私はoutter()とprint()の後に使用する必要がありますか?
私はいつも習慣的に印刷するには()を使用し..
getstatic負荷スタック上の静的クラス変数の値を使用することになりますので、
System.out
は、システムのstatic
分野です。あなたは何を知りたいですか? – yonexbat私のオペランドスタックは実際には良いですか? –