問題タブ [javap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - javap dissembler を使用して .java ファイルを作成できますか
jdkのjavapツールを使用して、.classファイルから.javaファイルを再生成できますか?
コマンドを使用javap classsfile
しました。データメンバーとメンバー関数の宣言を含む.javaファイルを出力するだけです。
そうでない場合、それを達成するための適切な方法は何ですか...
jvm - javacもインライン化しますか?
私はjavapといくつかの非常に単純なコードをいじっていましたが、それは - できれば単純な - 質問を提起しました。
最初のコードは次のとおりです。
ここで、コードをコンパイルして出力を調べました (今のところ -verbose を省略しています)。
これですべて意味がわかり、さまざまなバイトコードを理解できましたが、頭に浮かんだ質問は次のとおりです。
- 「m1」と「m2」がinvokestatic呼び出しで言及されているので、何らかの方法で呼び出されますが、javap呼び出しで実際のバイトコード出力が表示されません!
- さて、それらはインライン化されていますか、それとも表示されませんか? もしそうなら、なぜですか?
繰り返しますが、この質問は、javac が内部でこのような処理をどのように処理するかという純粋な関心事です。ありがとう!
java - クラス ファイル定数プール (javap) のメソッド シグネチャと記述子
クラスファイルの定数プールセクションの下にある次の2つのエントリを見つけようとしています:
エントリ (1) -> (I)I は関数の開始を示し、エントリ (2) -> I は関数の終了を示しますか。
このコンパイラは特定のものですか、それともコンパイラごとに異なる可能性がありますか?
Lambda 関数についても同様の質問です。
申し訳ありませんが、JLS ドキュメントには何も見つかりませんでした。
ありがとう
java - var arg と array の違い
次のようなコードがあるとします
私がする時javap HelloWorld
したがって、クラスファイル method1 と method2 に従って、同じ配列引数を取ります。では、なぜ彼らが取ることができる入力に違いがあるのでしょうか?
method1 のように単純な文字列入力を受け取ることはできませんが、var arg は可変文字列入力と配列を受け取ることができますか?