栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

读取Java字节码指令:该数字是什么意思?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

读取Java字节码指令:该数字是什么意思?

Java类文件和字节码

Java类文件(字节码文件)由不同的组件组成:

http://en.wikipedia.org/wiki/Java_class_file

  • 幻数:0xCAFEBABE
  • 类文件格式的版本:类文件的次要和主要版本
  • 常量池:类的常量池
  • (…)
  • 栏位:课程中的所有栏位
  • 方法:类中的任何方法
  • 属性:类的任何属性(例如,源文件的名称等)

数字#5只是指常量池中的某个位置。在该位置找到一个CONSTANT_FieldRef,其中包含对CONSTANT_NameAndType的引用以及其他属性。并且CONSTANT_NameAndType包含对CONSTANT_Utf8的引用(包含实际的字符串/名称。)

因此流程如下所示:

getfield #number -> FieldRef -> NameAndType -> Utf8 -> string

http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html

因此,无需在每个

getfield
指令中保存整个字符串,而是可以保存数字。这样可以提高解释器(或JIT)的性能以及类文件中的空间。

手写字节码

可以使用此工具将手写的字节码汇编到类文件中(包含许多示例):

http://jasmin.sourceforge.net/



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/470276.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号