欧尼酱讲JVM(08)——字节码中方法内部结构的剖析
用到的工具——Jclasslib
IDEA提供了插件,很方便。
首先 先看一段代码:
public class LocalVariablesTest {private int count = 0;public static void main(String[] args) {LocalVariablesTest test = new LocalVariablesTest();int num = 10;test.test1();}public void test1() {Date date = new Date();String name1 = "java";String info = test2(date,name1);}public String test2(Date dateP, String name2) {dateP = null;name2 = "sokjgaoie";double weight = 130.5;char gender = '男';return dateP + name2;}public void test3(){count ++;}public void test4(){int a = 0;{int b = 0;b = a + 1;}int c = a + 1;}
}
下面具体分析:
L 表示引用变量
[ 表示是数组
V 表示void
在Code—Bytecode中能看到字节码指令
可以看到main方法中字节码指令行号和代码行号的对应。
好了,字节码中方法内部结构分享完了,记得手动三连哦~
欧尼酱讲JVM(08)——字节码中方法内部结构的剖析相关推荐
- 欧尼酱讲JVM(01)——整体概览(导航)
从业这么久了,输入了很多东西,趁我还算不老,趁我还有精力,我觉得把我的知识和经验整理一番,输出出来. 那么首先就从JVM开始吧.我将从以下几个方面讲解JVM: 欧尼酱讲JVM(02)--类的加载过程 ...
- 欧尼酱讲JVM(17)——方法区详解有图有真相
目录 位置图解 方法区的理解 方法区在哪里 方法区的基本理解 HotSpot中方法区的理解(演进过程) 方法区的内部结构 图解方法区内部结构 运行时常量池 class文件中常量池的理解 为什么需要常量 ...
- 欧尼酱讲JVM(22)——分代收集算法
目录 分代收集算法 HotSpot中的分代收集 年轻代 老年代 没有一种最好的算法吗?没有,没有最好只有最适合.具体问题具体分析! 上一篇文章<欧尼酱讲JVM(21)--垃圾回收相关算法> ...
- java的标量和聚合量_欧尼酱讲JVM(16)——如何基于逃逸分析进行代码优化
代码优化是一个涉及面很广的"工程",但是今天呢,本姑娘主要给大家分享基于逃逸分析,如何给代码做优化.那么逃逸分析是什么呢?我前面的文章也仔细的讲解过了,这里就不过多的赘述了.有不明 ...
- 欧尼酱讲JVM(19)——执行引擎
目录 执行引擎概述 什么是执行引擎 位置图解 执行引擎的工作过程 Java程序的编译和解释运行的理解 Java代码编译和执行的过程 两个问题 什么是执行器,什么是JIT编译器 为什么说Java是半编译 ...
- 欧尼酱讲JVM(18)——对象实例化内存布局与访问定位
目录 对象的实例化 创建对象的几种方式 从字节码角度看对象的创建过程 对象创建的六个步骤 第一步:判断对象对应的类是否加载.链接.初始化 第二步:为这个对象分配内存 第三步:处理并发安全问题 第四步: ...
- 欧尼酱讲JVM(12)——本地方法接口
位置图解 图中虚线框起来的就是本地方法接口 什么是本地方法 简单地讲,一个Native Method就是一个Java调用非Java代码的接口,一个Native Method是这样一个Java方法:该方 ...
- 欧尼酱讲JVM(06)——指点江山—程序计数器
程序计数器在哪 程序计数器执行过程: 程序计数器(Program Counter Register),也叫PC寄存器,是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器. 在Java ...
- 欧尼酱讲JVM(04)——运行时数据区简介
运行时数据区概括 Java虚拟机在执行Java程序过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依 ...
最新文章
- “史上最全PyTorch资源汇总“(转载)
- 基片集成波导原理_ETH研究人员开发微型红外光谱仪 可以集成到芯片当中
- 前端性能优化:当页面渲染遇上边缘计算
- Ubuntu单用户修改root密码
- java 双线程交替,Java 创建两个线程,和主线程交替运行。
- java信号量源代码_Java信号量Semaphore原理及代码实例
- javascript 变换变量 数据类型 类型转换 运算符 运算表达式 运算优先级 理解笔记...
- 利用ABBYY Screenshot Reader快速截取网页并识别文本
- android暗水印技术,基于Android的隐藏数字水印技术的研究与实现
- [转] 花6小时整理的网上最全的系统服务,想PF降到50以下的进,经典中的经典
- 曲线曲面基本理论(二)
- 阿里巴巴java工程师面试经验详情
- keep-alive的用法和作用
- 虚幻引擎图文笔记:使用MixamoConverter对Mixamo动画重定向成UESkeleton匹配动画
- QT项目之键盘控制光标移动
- 只有那些不断充实自己的人,才有机会在往后的日子里持续地被雇用
- 检测PE文件加壳信息用的特征码
- springboot+Zuul网关服务
- Linux vim 文本替换 %s/原文/替换文本/g
- 七彩cms云转码_七彩CMS视频转码 2019云转码彻底开源系统版本号