У меня есть этот байт-код:
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 () и print () после?
Я всегда обычно использую out () для печати ..