jvm 字节码jclasslib解读
我们在idea里面用jclasslib插件对一个简单的代码实例进行分析。
源代码如下:
public class test01 {private int num=0;public static void main(String[] args) {test01 t=new test01();int num=10;t.test01();}public void test01(){String name="hj";System.out.println(name);}}
jclasslib里面如下所示:
main方法签名:名字,描述符放在常量池里面,都是字面量
接下来分析它的code属性!也是最复杂的一项
字节码如上,都是一些操作栈指令,可见长度为16
里面LineNumberTable记录了操作指令和源代码直接的对应关系
LocalVariableTable 记录了局部变量表信息,可以看到有三项,分别是args、t、num,其中序号对应的是slot槽的对应索引,long,double占两个slot,序号对应它的第一个slot的索引
其中还可以看出它们的起始作用域,例如t:8-15,num:11-15
接下来看一下非static方法的局部变量表:
局部变量表的长度是2,TIP非static方法,初始化的时候this属性会被分配,并记录在索引为0的位置,这是约定俗成的,便于虚拟机加载。
jvm 字节码jclasslib解读相关推荐
- Java指令全集_Java的JVM字节码指令集详解
本文详细介绍了如何使用javap查看java方法中的字节码.以及各种字节码的含义,并且配以完善的案例,一步步,从头到尾带领大家翻译javap的输出.在文末还附有JVM字节码指令集表. 本文不适合没有J ...
- java开发C语言编译器:把C实现的快速排序算法编译成jvm字节码
有了前面一系列的铺垫和准备后,我们终于能走到至关重要的一刻.在本节,我们将用C语言开发快速排序算法,然后利用我们的编译器把它编译成java字节码,让C语言编写的快速排序算法能在java虚拟机上顺利执行 ...
- 2个字节能存多少个16进制_初探JVM字节码 - 疾风老头
作者: LemonNan 原文地址: 代码地址: 字节码 概述 本篇要介绍的是能 "一次编译,到处运行的 JVM 字节码" 为什么能到处运行? 是因为在 任意平台下所编译出来的 c ...
- JVM字节码指令集大全及其介绍
Java是怎么跨平台的 我们上计算机课的时候老师讲过:"计算机只能识别0和1,所以我们写的程序要经过编译器翻译成0和1组成的二进制格式计算机才能执行".我们编译后产生的.class ...
- Java生产环境下性能监控与调优详解 第8章 JVM字节码与Java代码层调优
第8章 JVM字节码与Java代码层调优 8-1 jvm字节码指令-1 8-2 jvm字节码指令-2 8-3 i++与++i 8-4 字符串+拼接 8-5 Try-Finally字节码 8-6 Str ...
- 【JVM · 字节码】指令集 解析说明
1. 概述 Java字节码指令对于虚拟机,就好像汇编语言对于计算机,属于基本执行指令. Java虚拟机的指令由 一个字节长度 的.代表着某种特定操作含义的数字(称为 操作码/Opcode)以及跟随其后 ...
- 深入理解JVM字节码(一)
目录 深入剖析Class文件结构 一.初探class文件 二.class文件结构剖析 (一) 魔数 (二) 版本号 (三) 常量池 1. CONSTANT_Integer_info和CONSTANT_ ...
- Android自动化埋点(一) - JVM字节码
JVM字节码 开头 这一系列文章,主要是讲自动化埋点又叫无痕埋点,或者字节码插桩技术,写这个系列文章的目的是 偶然间发现,网上关于这方面的博客很少,所以我根据自己的一些实战经验,整理了这个系列的文章. ...
- 深入理解JVM字节码(二)
目录 字节码基础 一.字节码概述 二.Java虚拟机栈和栈帧 栈帧 1. 局部变量表 2. 操作数栈 三.字节码指令 1. 加载和存储指令 2. 操作数栈指令 3. 对象相关的字节码指令 1. ``方 ...
- JVM 调优实战--JVM字节码
目录 通过javap命令查看class文件的字节码内容 常量池 描述符 字段描述符 方法描述符 解读方法字节码 图解 研究i++与++i的不同 查看字节码 对比 分析字符串拼接孰优孰劣 小结 通过j ...
最新文章
- CLRS2e读书笔记—Chapter5 Appendix C
- C++继承中父类和子类之间的同名覆盖
- mysql ——读写分离
- P1056 排座椅(模拟)
- java 生成正弦波声音_如何生成一个正弦波声音曲线?
- java set的first_Java Pair.setFirst方法代码示例
- SpringMVC实现文件上传
- Android中如何实现多个框,在android中的对话框中设置多个文本框
- 判断形参S所指字符串是否是回文,若是,函数返回1,不是则返回0,并在main中实现输出...
- 高性能网站架构的思考
- java接收前端JSON字符串
- 地图编辑器开发(四)
- 参考文献格式字号字体_参考文献用什么字体字号 参考文献标准格式字体
- 无线鼠标没反应怎么办
- oracle rac告警,oracle11.2.0.4 RAC 日志总有告警
- chrome 浏览手机网站
- 计算机屏保是不是休眠,计算机上屏保、待机、休眠、睡眠、关机的区别
- PSINS_Toolbox使用心得1
- JS设置请在微信客户端打开链接提示页面
- java 排版快捷键_Eclipse自动排版快捷键失效(转)