美文网首页
java 常量池 index 索引位置的坑

java 常量池 index 索引位置的坑

作者: onedam | 来源:发表于2022-04-06 15:22 被阅读0次

https://stackoverflow.com/questions/41541036/valid-unusable-constant-pool-index

All 8-byte constants take up two entries in the constant_pool table of the class file. If a CONSTANT_Long_info or CONSTANT_Double_info structure is the item in the constant_pool table at index n, then the next usable item in the pool is located at index n+2. The constant_pool index n+1 must be valid but is considered unusable.

In retrospect, making 8-byte constants take two constant pool entries was a poor choice.
(在类文件的常量池表中,所有8字节常量占用两个条目。如果常量Long_info或常量Double_info结构是索引n处常量池表中的项,则池中下一个可用项位于索引n+2处。常量池索引n+1必须有效,但被视为不可用。

回想起来,让8字节常量包含两个常量池条目是一个糟糕的选择。)

image.png

一个long 和 double 占常量池 2个索引号. 是历史遗留问题...wori ...

image.png

asm ClassReader 解析的时候 把index 和 size 分开来计算... 这里确实 ugly

相关文章

  • java 常量池 index 索引位置的坑

    https://stackoverflow.com/questions/41541036/valid-unusab...

  • java基础类型、String类理解、版本对比、1.8新特性

    1、java基本数据类型及长度 2、jvm的常量池: JVM常量池浅析Java常量池理解与总结 Java中的常量池...

  • 细说Java常量池

      Java中的常量池有:class常量池、运行时常量池、String常量池。 为什么要使用常量池?   避免频繁...

  • java__常量池

    java的常量池分为两种型态:静态常量池和运行常量池 静态常量池: 即class文件中的常量池,这种常量池主要用于...

  • 常量池、运行时常量池、字符串常量池

    常量池、运行时常量池、字符串常量池 Java里包含各种常量池,经常傻傻分不清楚,下面就简单梳理下Java中的池们。...

  • Java 内存—常量池

    Java中的常量池分为两种型态: 静态常量池 运行时常量池 静态常量池 所谓静态常量池是指class文件中的常量池...

  • JVM(六)JVM常量池

    1.常量池类型 Java中的常量池分为三种: 类文件常量池(静态常量池)(The Constant Pool)运行...

  • 常量池

    Java中的常量池,实际上分为两种形态:静态常量池和运行时常量池。 静态常量池 : *.class文件中的常量池,...

  • 你对常量池够了解吗

    在 java 中,常量池分为以下三种: class 常量池 字符串常量池 运行时常量池 一、class 常量池 1...

  • 字符串常量池在Java内存区域的哪个位置?

    字符串常量池在Java内存区域的哪个位置?在JDK6.0及之前版本,字符串常量池是放在Perm Gen区(也就是方...

网友评论

      本文标题:java 常量池 index 索引位置的坑

      本文链接:https://www.haomeiwen.com/subject/liirsrtx.html