2016-12-16 24 views

回答

0

长材和双打占用在常量池中的两个时隙,所以在他们以后时隙被跳过。在这种情况下,插槽2保持一个长,所以插槽3被跳过。

2

注意前面的条目类型Longits documentation说:

全部8个字节的常量占用的constant_poolclass文件的两个条目。如果CONSTANT_Long_infoCONSTANT_Double_info结构是constant_pool表中索引为n的项目,则池中的下一个可用项目位于索引n + 2。 constant_pool索引n +1必须有效,但被认为不可用。

和整齐此外

现在回想起来,使得8字节常数取两个常量池项是一个糟糕的选择。

所以javap决定跳过不可用的条目,而不是印刷像“#3 unusable” ...