jca文件中的constantpool指令的说明

时间:2016-02-25 11:28:15

标签: javacard

.jca 文件文档中,提到constantpool部分将如下所示。

.constantPool {
        /*
         * The first six entries declare constant pool entries that
         * are contained in
         * other packages.
         * Note that superMethodRef are always declared internal
         * entry. 
         */
        classRef    0.0;     // 0    package token 0, class token 0
        instanceFieldRef 1.0.2;// 1  package token 1, class token 0,
                              //   instance field token 2
        virtualMethodRef 2.0.2; // 2 package token 2, class token 0,
                    //  instance field token 2
        classRef    0.3;  // 3 package token 0, class token 3
        staticFieldRef  1.0.4;   // 4 package token 1, class token 0,
                    //      field token 4
        staticMethodRef  2.0.5;  // 5 package token 2, class token 0,
                    //      method token 5
        /*
         * The next five entries declare constant pool entries
         * relative to this class.
         */
        classRef    test0;        // 6
        instanceFieldRef    test1/field1;        // 7
        virtualMethodRef    test1/method1()V;        // 8
        superMethodRef  test9/equals(Ljava/lang/Object;)Z;     // 9
        staticFieldRef    test1/field0;        // 10
        staticMethodRef    test1/method3()V;        // 11
    }

但实际上我的 .constantPool 指令如下所示

.constantPool {
        // 0
        staticMethodRef Callmymenu/<init>()V;
        // 1
        classRef Callmymenu;
        // 2
        virtualMethodRef 0.3.1()V;      // javacard/framework/Applet.register()V
        // 3
        staticMethodRef 0.3.0()V;       // javacard/framework/Applet.<init>()V
        // 4
        virtualMethodRef 0.10.1()[B;        // javacard/framework/APDU.getBuffer()[B
        // 5
        staticMethodRef 0.7.1(S)V;      // javacard/framework/ISOException.throwIt(S)V
        // 6
        virtualMethodRef 0.3.3()Z;      // javacard/framework/Applet.selectingApplet()Z
    }

有人可以解释一下如何用文档标准分析我的constantPool指令。

1 个答案:

答案 0 :(得分:2)

(假设你在谈论this

您应该查看Java Card Virtual Machine Specification以了解常量池的用途。您粘贴到问题中的“文档”部分只是示例。不同的类具有不同的常量池。

AFAIK java卡常量池的主要原理与桌面java相同(当然有一些约束) - 因此你可能希望看herehere开始。< / p> 祝你好运!