Java类文件和字节码

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

>幻数:0xCAFEBABE

>类文件格式的版本:类文件的次要版本和主要版本

>常量池:类的常量池

>(…)

>字段:类中的任何字段

>方法:类中的任何方法

>属性:类的任何属性(例如源文件的名称等)

数字#5仅指恒定池中的位置.在该位置找到CONSTANT_FieldRef,其中包含对CONSTANT_NameAndType以及其他属性的引用. CONSTANT_NameAndType包含对CONSTANT_Utf8的引用(包含实际的字符串/名称.)

所以流程看起来像这样:

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

因此,不是在每个getfield指令中保存整个字符串,而是保存一个数字.这提高了类文件中解释器(或JIT)和空间的性能.

手写字节码

可以使用此工具将手写字节码组装到类文件中(它包含大量示例):

java 数字表示什么意思是什么,读取Java字节码指令:数字是什么意思?相关推荐

  1. c++byte数组和文件的相互转换_5分钟系列之Java类文件结构(三、字节码指令简介)...

    字节码指令简介1字节码与数据类型2加载和存储指令3运算指令4类型转换指令5对象创建与访问指令6操作数栈管理指令7 控制转移指令8方法调用和返回指令9异常处理指令10同步指令公有设计和私有实现Class ...

  2. JVM笔记:Java虚拟机的字节码指令详解

    1.字节码 Java能发展到现在,其"一次编译,多处运行"的功能功不可没,这里最主要的功劳就是JVM和字节码了,在不同平台和操作系统上根据JVM规范的定制JVM可以运行相同字节码( ...

  3. java 必须存在默认构造器_Java默认构造方法在字节码的实现

    方法在程序的重要性不言而喻,了解方法在字节码中的表达能够使我们开发做到更加心中有数. 再看class文件结构 上一步已经分析完了class文件中的字段(field_info)的表达,接下来就是方法数( ...

  4. Java虚拟机字节码指令概述

    虚拟机字节码指令 Java虚拟机的指令由一个字节长度的.代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)而构成. 一 基 ...

  5. java字节码指令简介(仅了解)

    [0]README 0.1)本文全文转自 "深入理解jvm", 旨在了解 java字节码指令 的基础知识: [1]写在前面 1)由于jvm 采用面向操作数栈而不是寄存器的结构,所以 ...

  6. Java字节码指令简介

    本文是<深入理解Java虚拟机>中第六章的读书笔记. 1.概述 在Class文件中,Java方法里的方法体,也就是代表着一个Java源码程序中程序的部分存储在方法表集合的Code属性中.存 ...

  7. Java的Class类文件结构及基本字节码指令

    Class类文件的结构 概念:Class文件是一组以8位字节为基础单位的二进制流 按顺序整齐排列 没有任何分隔符,内容全部是运行时的必要数据,没有空隙存在 排序方式:高位在前 Big-Endian:最 ...

  8. 【JVM源码解析】模板解释器解释执行Java字节码指令(上)

    本文由HeapDump性能社区首席讲师鸠摩(马智)授权整理发布 第17章-x86-64寄存器 不同的CPU都能够解释的机器语言的体系称为指令集架构(ISA,Instruction Set Archit ...

  9. 【Hotspot】 执行字节码指令流程(1):堆栈的创建以及Java函数调用

    什么是基于栈的虚拟机: 关于JVM中调用Java函数需要了解一下基于栈的虚拟机: 栈是在内存中单独维护的一个结构,栈中有局部变量表,执行操作比如a+b需要调用将两个变量加载到操作数栈中,相加后放到栈顶 ...

  10. java中用于运行字节码的命令_Java字节码指令

    1. 简介 Java虚拟机的指令由一个字节长度的.代表着某种特定操作含义的数字(称为操作码)以及跟随其后的零至多个代表此操作所需参数(称为操作数)而构成. 由于Java虚拟机采用面向操作数栈而不是寄存 ...

最新文章

  1. 2017年5个最佳网络监控工具 你知道哪些
  2. JButton 圆角_昆明圆角灯箱哪家好
  3. mysql5.7重置密码windows_MySql 5.7 for Windows 重置root密码
  4. Nginx负载均衡的详细配置及使用案例详解.
  5. multisim模拟电子钟课设带视频报告下载
  6. linux c开发项目,linux c 服务器开发项目
  7. Endnote常见错误
  8. 订单类 京东快递电子面单接口的使用开发
  9. 上海成为50岁以上房东数量最多的中国城市,成都、青岛、重庆、杭州紧随其后...
  10. 光照传感器BH1750实验
  11. 架构专家李伟山:电商系统之订单系统
  12. AngularJS Protractor
  13. Mac-修改MySQL密码
  14. SharePoint 2010 网站备份还原简单介绍
  15. 人力资源管理:如何最大限度激发员工的潜能
  16. 公网ipv6搭建文件服务器,IT之家学院:搭建自己的IPv6私有云
  17. 拿到CCIE证书两年后
  18. win7 激活的两种方法
  19. 怎样定制一款电视盒子软件系统
  20. c语言ns图选择结构程序设计,项目3选择结构程序设计.ppt

热门文章

  1. SAP托管在Github上的ABAP编程规范
  2. 字符串基础类型拓宽的操作,转换成整数值
  3. Field creation not permitted in partner development mode
  4. SU22 for service CRM_OPPORTUNITY
  5. SAP UI5 this.getList().getBinding(items).attachChange(this.handleMasterListChanged
  6. SAP ui5 xml view parse and control creation point
  7. SAP ABAP OData uri type为metadata的请求处理逻辑
  8. SAP Leonardo平台机器学习API的一些错误处理机制
  9. IBASE component deletion
  10. oracle中如何创建一个过程,如何开发ORACLE存储过程