本次大作业中

java程序——>二进制流(byte[ ]表示)——>ClassFile对象——>JClass

ClassFile的字段:magic,minorversion......,ConstantPool,accessFlag, short[ ] interfaces, FieldInfo[ ](字段信息表), MethodInfo[ ](方法信息表), AttributeInfo[ ](属性信息表)

JClass的字段:name,superclassname.....,RuntimeConstantPool,accessFlag, String[ ]interfacenames,Field[ ](字段表),Method[ ](方法表)

用ClassFile创建JClass时:ClassFile的ConstantPool——>创建JClass的RuntimeConstantPool

ClassFile的interfaces——>取名字创建JClass的interfacenames

ClassFile的FieldInfo[ ]——>创建JClass的Field[ ] (一个FieldInfo创建一个Field)

ClassFile的MethodInfo[ ]——>创建JClass的Method[ ](一个MethodInfo创建一个Method)

ConstantPool:常量池,存储着各种常量,这些常量都是符号引用,如下

ClassInfo,DoubleInfo,FieldInfo,FloatInfo,IntegerInfo,InterfaceMethodrefInfo,InvokeDynamicInfo,LongInfo,MemberInfo,MethodHandleInfo,MethodrefInfo,MethodTypeInfo,

NameAndTypeInfo,StringInfo,UTF8Inf

RuntimeConstantPool:运行时常量池,存储各种运行时常量,运行时常量是根据常量池中的常量创建而来,所以运行时常量与常量池中的常量一一对应,且这些运行时常量都是符号引用,如下

IntWrapper,FloatWrapper,LongWrapper,DoubleWrapper,StringWrapper,ClassRef,FieldRef,MethodRef,InterfaceMethodRef,NameAndType,UTF8

ClassFile与JClass的更多相关文章

  1. myEclipse中改了项目名,出现的问题 和 错误java.io.IOException: tmpFile.renameTo(classFile) failed

    今天遇到一个很头疼的问题,建的一个新项目,后来因为一些原因把项目名改了,之后就做了一些业务,但运行时总是没有反应,后来在myEclipse工作空间下的webapps文件中发现, 部署的文件名和项目名称 ...

  2. tmpFile.renameTo(classFile) failed 错误

    突然的出现了这个tmpFile.renameTo(classFile) failed 错误. 也许是我删掉了tomcat里面的webapps 中的项目,而通过debug部署,而出现了这个问题. 一开始 ...

  3. NDK(5) Android JNI官方综合教程[JavaVM and JNIEnv,Threads ,jclass, jmethodID, and jfieldID,UTF-8 and UTF-16 Strings,Exceptions,Native Libraries等等]

    JNI Tips In this document JavaVM and JNIEnv Threads jclass, jmethodID, and jfieldID Local and Global ...

  4. org.apache.tomcat.util.bcel.classfile.ClassFormatException: null is not a Java .class file

    org.apache.tomcat.util.bcel.classfile.ClassFormatException: null is not a Java .class file   在$TOMCA ...

  5. Eclipse之NDK编译-- Type 'jint' could not be resolved, and JNIEnv, jclass错误解决办法

    最近在研究面部识别美白相关的功能.使用的是opencv,就去研究了.今天正好有空就把安装了ndk,安装完成之后就试图去编译demo程序,hellow-jni c代码,一开始编辑就报错了3个错误信息: ...

  6. tmpFile.renameTo(classFile) failed解决

    完整异常: 严重: Servlet.service() for servlet [bjbr] in context with path [/HerPeisWechat] threw exception ...

  7. maven org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 60

      maven org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant poo ...

  8. Jni的Jclass JmethodID JfrieldID的差异

    Jni的Jclass JmethodID JfrieldID 这三者都是java类别的属性,本质上都是指标(Pointer).透过这些指标就能快速调用java类别的函数,或存取对象的属性值.在该类别被 ...

  9. jclass和jobject的迷惑

    [译]jclass和jobject 2012-09-18 15:02:58|  分类: Android |字号 订阅   jclass和jobject的迷惑第一次使用JNI,实例引用(jobject) ...

随机推荐

  1. Python os.utime() 方法

    概述 os.utime() 方法用于设置指定路径文件最后的修改和访问时间.高佣联盟 www.cgewang.com 在Unix,Windows中有效. 语法 utime()方法语法格式如下: os.u ...

  2. PHP jdtounix() 函数

    ------------恢复内容开始------------ 实例 把格利高里历法的日期转换为儒略日计数,然后把儒略日计数转换为 Unix 时间戳: <?php$jd=gregoriantojd ...

  3. PHP strncmp() 函数

    实例 比较两个字符串(区分大小写): <?php高佣联盟 www.cgewang.comecho strncmp("Hello world!","Hello ear ...

  4. 5.4 省选模拟赛 修改 线段树优化dp 线段树上二分

    LINK:修改 题面就不放了 大致说一下做法.不愧是dls出的题 以前没见过这种类型的 不过还是自己dp的时候写丑了. 从这道题中得到一个结论 dp方程要写的优美一点 不过写的过丑 优化都优化不了. ...

  5. 使用hibernate validate做参数校验

    1.为什么使用hibernate validate ​ 在开发http接口的时候,参数校验是必须有的一个环节,当参数校验较少的时候,一般是直接按照校验条件做校验,校验不通过,返回错误信息.比如以下校验 ...

  6. PHP爬取网页的主要方法,你掌握了吗

    这篇文章讲的是PHP爬取网页的主要方法,主要流程就是获取整个网页,然后正则匹配(关键的). PHP抓取页面的主要方法,有几种方法是网上前辈的经验,现在还没有用到的,先存下来以后试试. file()函数 ...

  7. Xcode11更改启动页设置方法

    新开了个项目,发现之前的启动页怎么也调不好,后来发现配置里边少了一行,所以整理一下,我使用的xcode版本是11. 以前的时候是在这2个中间,还有一行,通过下边2项来配置,现在更改了,附上新的教程.如 ...

  8. 【从零开始撸一个App】Dagger2

    Dagger2是一个IOC框架,一般用于Android平台,第一次接触的朋友,一定会被搞得晕头转向.它延续了Java平台Spring框架代码碎片化,注解满天飞的传统.尝试将各处代码片段串联起来,理清思 ...

  9. “随手记”开发记录day04

    今天完成了添加收入和支出的页面,其实挺简单的就是里面的那个图表有些难搞,你得把每个图标和文字对应起来 挺费事的 话不多说,上效果 其中点击旋转按钮转换收入支出是我们找了好久才找出来这个方法的,太不容易 ...

  10. Layui+MVC+EF (项目从新创建开始)

    最近学习Layui ,就准备通过Layui来实现之前练习的项目, 先创建一个新的Web 空项目,选MVC 新建项目 创建各种类库,模块之间添加引用,并安装必要Nuget包(EF包)   模块名称 模块 ...