jvm-bytecode

    3

    2答えて

    私はちょうど1つの抽象メソッドを持つ2つのインターフェイスを持っていると仮定します。これらのインタフェースを持って、私はそれでラムダを宣言することができます。 interface A { int c(); } interface B { int c(); } public class Main { public static void main(Strin

    2

    1答えて

    他人が作成したバイトコードを変更するのにASM libraryを使用しています。任意のクラスの任意のメソッドについては、現在のクラスをスタックに追加するLdcInsnNodeを作成したいと思います。 たとえば、com.example.ExampleClassというクラスを変換しようとしているとします。私はSystem.out.println(ExampleClass.class.getName()

    3

    2答えて

    私はいくつかの実験を行うために単純なJavaバイトコードパーサーを作成しましたが、最近は予期せぬ場所で失敗しました。 Javaの1.1.8.16のrt.jarからjava/lang/reflect/Member.javaを読みながら、私のパーサが怒ったMemberは(行方不明ACC_ABSTRACTフラグに注意してください)ので、同様にスタートするので: Classfile Member.clas

    0

    2答えて

    文字列をJasminバイトコードに格納しようとしています。研究が充実した後は、これが可能であれば、私は見つけられませんでした。私はそれを印刷する方法を見つけることしかできませんでした(これは文字列を印刷する方法です)。 文字列を文字列として格納することも考えましたが、より簡単な方法があるはずだと考えました。あなたはそれを保存するよう 文字列プリミティブデータ型ではありません/でそれをロードします:

    1

    1答えて

    クラスをバイト配列にロードしようとしています。 MainC、Loader、ClassByte、およびbyteClassLoaderはすべてクラスをロードします。 MainCが開始点です。 public class MainC { public static void main(String[] args) { Loader loc = new Loader();

    0

    1答えて

    [1]によると、メソッドフレームでは、ローカル変数配列には、呼び出されたインスタンスへの参照、パラメータ、およびメソッドのコードで使用されるその他の変数が含まれています。また、longとdoubleの値は2つのローカル変数を占有します。スタック操作を介して、メソッドのコードを生成するバイトバディを使用して、単一のインデックスにMethodVariableAccess.OffsetLoadingイン

    1

    1答えて

    アンドロイドアプリケーションを逆にします。読んでいる間、私はp1やp2のような変数を使ったいくつかの方法を見ています...私はそれらの変数をどこで参照できるのか分かりません。たとえば: .method public b(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V .locals 1 invoke-st

    2

    1答えて

    Javaでは、InvocationHandlerの実装を使用して動的プロキシを作成することができます。 JVMの最適化にもかかわらず、リフレクションの使用には常にメソッドを呼び出すオーバーヘッドがあります。 この問題を解決しようとすると、実行時にByteBuddyを使用してプロキシクラスを作成しようとしましたが、ドキュメントがこの面で十分にはっきりしていないようです。 メソッドの呼び出しをいくつか

    0

    2答えて

    This answerは、Javaバイトコードが「安全のためのJava言語の規則に従う」ことを確認するために検証が使用されると述べています。 この確認が実行されなかった場合、安全でないバイトコードが実行される可能性があります。これが原因で起こりうる問題は何ですか? バイトコード検証の無効化が許容される状況はありますか?

    4

    4答えて

    プログラミング言語を書いたとします。名前は、langとします。 長い旅を書き始めるには、lang、私は自分自身でlangを書くことで始めることにしました。私は実際にを実行することはできませんそれは、実行するプログラムを実行するために何もないためです。 だから私はlangのJavaで別のコンパイラを書くことから始めます。今回は、私が終わったらバイトコードに変換してそれを残すことにしました。私は今、私