深入理解java虚拟机——控制转移指令(代码片段)

小志的博客 小志的博客     2023-03-09     319

关键词:

目录

一、控制转移指令的概述

  • 控制转移指令可以让Java虚拟机有条件或无条件地从指定的位置指令而不是控制转移指令的下一条指令继续执行程序,从概念模型上理解,可以认为控制转移指令就是在有条件或无条件地修改PC寄存器的值。

二、控制转移指令

指令描述指令
条件分支ifeq、iflt、ifle、ifne、ifgt、ifge、ifnull、ifnonnull、if_icmpeq、if_icmpne、if_icmplt、if_icmpgt、if_icmple、if_icmpge、if_acmpeq、if_acmpne
复合条件分支tablesswitch、lookupswitch
无条件分支goto、goto_w、jsr、jsr_w、ret

三、控制转移指令示例

  • 代码

    public class Test1
    	public static void main(String []args)
    		int a = 1;
    		if(a > 1) 
    			System.out.println("大于1");
    		else
    			System.out.println("小于等于1");
    		
    	
    	
    
    
  • 执行javac命令编译成.class文件

  • 执行javap命令查看字节码指令

深入理解java虚拟机——同步指令(代码片段)

目录一、同步指令的概述二、同步指令的示例一、同步指令的概述Java虚拟机可以支持方法级的同步和方法内部一段指令序列的同步,这两种同步结构都是使用管程(Monitor)来支持的。方法级的同步是隐式的,即... 查看详情

深入理解java虚拟机——异常处理指令(代码片段)

目录一、异常处理指令的概述二、异常处理指令(示例1)三、异常处理指令(示例2)一、异常处理指令的概述在Java程序中显示抛出异常的操作(throw语句)都由athrow指令来实现,除了用throw语句显示抛... 查看详情

深入理解java虚拟机jconsole:java监视与管理控制台(代码片段)

文章目录一、JConsole介绍二、启动JConsole三、内存监控四、线程监控结尾一、JConsole介绍JConsole(JavaMonitoringandManagementConsole)是一款基于JMX(JavaManage-mentExtensions)的可视化监视、管理工具。它的主要功能是通过JMX的... 查看详情

深入理解java虚拟机——对象创建与访问指令(代码片段)

目录一、对象创建与访问指令的概述二、对象创建与访问指令三、对象创建与访问指令的示例一、对象创建与访问指令的概述虽然类实例和数组都是对象,但Java虚拟机对类实例和数组的创建与操作使用了不同的字节码指令。... 查看详情

深入理解jvm虚拟机读书笔记——对象的创建与内存布局(代码片段)

注:本文参考自周志明老师的著作《深入理解Java虚拟机(第3版)》1.对象的创建过程在Java语言层面,创建对象一般是借助new关键字去实现:Useruser=newUser();而在虚拟机中,对象的创建过程如下:当Jav... 查看详情

深入理解java虚拟机——运算指令(代码片段)

目录一、运算指令的概述二、算术指令的内容三、算术指令的示例一、运算指令的概述运算或算数指令用于对两个操作数栈上的值进行某种特定运算,并把结果重新存入到操作栈顶。大体上算数指令可以分为两种:对整... 查看详情

jvm|第2部分:虚拟机执行子系统《深入理解java虚拟机》(代码片段)

...节码执行引擎7.1确定被调用的方法最后前言参考资料:《深入理解Java虚拟机-JVM高级特性与最佳实践》第1部 查看详情

深入理解java虚拟机——方法调用和返回指令(代码片段)

目录一、方法调用指令二、方法调用指令的示例三、方法返回指令的示例一、方法调用指令指令作用invokevirtual用于调用对象的实例方法,根据对象的实际类型进行分派(虚方法分派),这也是java语言中最常见的... 查看详情

《深入理解java虚拟机》读后笔记-hotspot虚拟机对象探秘(代码片段)

文章目录《深入理解Java虚拟机》读后笔记-HotSpot虚拟机对象探秘1.对象的创建2.对象的内存布局2.1对象头2.2实例数据2.3对齐填充3.对象的访问定位《深入理解Java虚拟机》读后笔记-HotSpot虚拟机对象探秘基于实用优先的原则,这... 查看详情

深入理解java虚拟机总结(代码片段)

基础了解Java程序的执行过程:Java源代码文件(.Java文件)->JavaCompiler(Java编译器)->Java字节码文件(.class文件)->类加载器(ClassLoader)->RuntimeDataArea(运行时数据)->ExecutionEngine(执行引擎)各种基本类型:boolean、byte... 查看详情

深入理解java虚拟机——加载和存储指令(代码片段)

目录一、加载和存储指令的概述二、加载和存储指令的内容三、加载和存储指令的示例一、加载和存储指令的概述加载和存储指令用于将数据在栈帧中的局部变量表和操作数栈之间来回传输。二、加载和存储指令的内容将一个局... 查看详情

深入理解java虚拟机——类型转换指令(代码片段)

目录一、类型转换指令的概述二、宽化类型转换三、窄化类型转换四、类型转换指令的示例一、类型转换指令的概述类型转换指令可以将两种不同的数值类型进行相互转换,这些转换操作一般用于实现用户代码中的显示类型... 查看详情

深入理解java虚拟机字节码指令简介

Java虚拟机指令是由(占用一个字节长度、代表某种特定操作含义的数字)操作码Opcode,以及跟随在其后的零至多个代表此操作所需参数的称为操作数Operands构成的。由于Java虚拟机是面向操作数栈而不是寄存器的架构,所以大多... 查看详情

深入理解java虚拟机——运算指令

目录一、运算指令的概述二、算术指令的内容三、算术指令的示例一、运算指令的概述运算或算数指令用于对两个操作数栈上的值进行某种特定运算,并把结果重新存入到操作栈顶。大体上算数指令可以分为两种:对整... 查看详情

读书·深入理解java虚拟机(代码片段)

前言Java内存区域运行时数据区1.程序计数器2.Java虚拟机栈3.本地方法栈4.Java堆5.方法区内存溢出和垃圾回收1.内存溢出2.垃圾回收3.内存分配与回收策略虚拟机类加载机制1.加载2.验证3.准备4.解析5.初始化前言欢迎关注微信公众号“... 查看详情

深入理解java虚拟机--内存分配与回收策略(代码片段)

...对象年龄判定(5)、空间分配担保本文参考于《深入理解Java虚拟机》内存分配与回收策略Java技术体系的自动内存管理, 查看详情

深入理解java虚拟机——字节码指令简介

一、字节码指令简介Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的数字(称为操作码Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数Operands)而构成。由于Java虚拟机采用面向操... 查看详情

深入理解java虚拟机-读书笔记(代码片段)

第1章走近Java第2章Java内存区域与内存溢出异常第3章垃圾回收器与内存分配策略第4章虚拟机性能监控与故障处理工具第1章走近JavaJava程序设计语言、Java虚拟机、JavaAPI类库统称为JDK。Java技术体系分为4个平台:JavaCard:Apple... 查看详情