0

「javap -verbose」を使用してクラス ファイルを解析し、定数プールが失われていることを確認しました #3。誰か理由を教えてください。

ここに画像の説明を入力 

  

4

2 に答える 2

2

前のエントリにはタイプがLongあり、そのドキュメントには次のように記載されていることに注意してください。

すべての 8 バイト定数constant_poolは、ファイルのテーブルで2 つのエントリを占有しclassます。CONSTANT_Long_infoorCONSTANT_Double_info構造体がインデックスnconstant_poolのテーブル内のアイテムである場合、プール内の次の使用可能なアイテムはインデックスn +2 に配置されます。インデックスn +1 は有効である必要がありますが、使用できないと見なされます。constant_pool

そしてきちんとした追加

振り返ってみると、8 バイトの定数に 2 つの定数プール エントリを持たせることは、適切な選択ではありませんでした。

そこでjavap、「<code>#3 unusable」…</p> のようなものを出力する代わりに、単に unusable エントリをスキップすることにしました。

于 2016-12-16T11:51:12.760 に答える