`
xfxlch
  • 浏览: 167487 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

基本数据类型对应字节码

    博客分类:
  • jvm
jvm 
阅读更多
【零】布尔型
boolean boo = true;
对应字节码
0:   iconst_1
1:   istore_1


【①】byte型:
byte m = 1;
对应的字节码:
0:   iconst_1
1:   istore_1

【②】int型:
int m = 1;
对应字节码
0:   iconst_1
1:   istore_1


【③】short型:
short m = 1;
对应字节码
0:   iconst_1
1:   istore_1


【④】long型:
long m = 1;
对应字节码:
0:   lconst_1
1:   lstore_1

【⑤】char型:
char m = 'a';
对应的字节码:
0:   bipush  97
2:   istore_1

【⑥】float型:
float m = 1.0f;
对应的字节码:
0:   fconst_1
1:   fstore_1

【⑦】double型:
double m = 1.0;
对应的字节码:
0:   dconst_1
1:   dstore_1

可以发现boolean,int,short,byte都是已iconst开头,这说明这几个类型在jvm看来都是同一个类型。没多大区别
解释一下命令的大致意思:
Tconst:将常量加载到操作数栈中。后面的数字相当于索引。T可替换为i,l,f等等
Tstore:将一个数值从操作数栈存储到局部变量表中
其中char的bipush 97就是把常量97加载到操作数栈中,供后面操作使用。
分享到:
评论

相关推荐

    汉字编码转换为字节码工具

    本工具就是针对这一需求而设计的,帮助用户轻松地完成汉字到字节码的转换过程。 首先,我们来了解一下汉字编码的基本概念。汉字编码主要包括以下几种类型: 1. **GB2312**:中国国家标准简体中文字符集,包含6763...

    该项目主要是JAVA字节码的学习项目.zip

    字节码位于方法表集合中,每个方法对应一个字节码序列。 3. **字节码指令集**:Java字节码指令集包括许多单字节或双字节的指令,如`aload_0`(加载局部变量0到操作数栈)、`iconst_1`(将整数1压入操作数栈)等。...

    binaryViewer字节码.rar

    4. **分析与解码**:对于某些类型的二进制数据,如PE(可执行文件)或ELF(Linux可执行文件),二进制查看器可能会提供一些分析功能,例如解析头部信息,识别段和节,或者解码部分字节码为高级语言指令。 5. **导出...

    java字节码反编译工具

    这个过程是反编译的关键步骤,因为字节码并不直接对应于源代码的结构,FrontEnd通过解析字节码,为后续的反编译提供了一个结构化的起点。 除了JAD,还有其他一些知名的Java字节码反编译工具,如FernFlower、Procyon...

    从Java代码到字节码(1)Java开发Java经验技巧共

    例如,理解数据类型、运算符和控制流对字节码的影响,以及如何利用JVM的内存模型和垃圾收集策略。 7. **JVM内存模型**:Java程序运行时,JVM会分配堆内存和栈内存。堆内存用于存储对象实例,而栈内存则用于方法调用...

    Java字节码

    - 性能优化:通过查看字节码,可以分析出代码的执行效率,优化算法和数据结构,提高程序运行速度。 - 反编译与逆向工程:对于开源项目,了解字节码可以帮助理解代码实现;对于非开源软件,字节码分析可能用于逆向...

    组态王数据类型.docx

    这些数据类型用于定义变量对应的寄存器的数据类型,适用于 I/O 类型的变量。 BIT 数据类型是 1 位的,范围是 0 或 1,类似于一般程序设计语言中的布尔(BOOL)变量,用于表示一些开关量。 BYTE 数据类型是 8 位的...

    java源码:JAVA字节码操作库 BCEL.zip

    5. **Instruction**: 表示一条字节码指令,有各种子类对应不同的操作码。开发者可以通过这些子类构建复杂的字节码序列。 6. **ConstantPoolGen**: 处理类的常量池,这是存储类元数据的地方,包括字符串、类引用、...

    c++和c#数据类型对照

    在进行跨语言编程时,了解不同编程语言之间的数据类型对应关系是至关重要的。特别是在C++与C#这两种语言之间进行交互时,明确不同类型之间的转换规则有助于实现更高效、更准确的程序集成。下面我们将详细探讨C++与C#...

    字节码文件结构详解.docx

    当我们编写 Java 源代码(.java 文件)后,通过编译器将其转换为对应的字节码文件(.class 文件),这些字节码文件遵循 JVM 规范,可以在任何支持 JVM 的平台上运行。不仅 Java,其他如 Groovy、Kotlin、Scala 等...

    java 获取字节码文件的几种方法总结

    任何数据类型都具备一个静态属性 .class,可以通过该属性来获取对应的字节码文件。例如,以下代码可以获取 Person 类的字节码文件: ```java public static void getClassObject_2() { Class clazz = Person.class...

    Java字节码(.class文件)格式详解((转载)

    每个`.class`文件对应于一个类或接口,包含了类的定义、方法、字段等元数据以及字节码指令。这些字节码指令构成了Java方法的实际执行逻辑。 字节码的结构主要包括以下几个部分: 1. **魔数**:每个`.class`文件的...

    Java程序设计课件:第2章 基本数据类型与基本操作.ppt

    Java编程语言的基础是其基本数据类型,这些类型用于表示各种数值、字符和逻辑值。第二章"基本数据类型与基本操作"深入探讨了Java中这些核心元素的使用和特性。 首先,我们来看Java中的基本数据类型,它们可以分为...

    基本数据类型运算符与表达式PPT学习教案.pptx

    例如,字符型数据以ASCII码的形式存储,占用1个字节,如字符' A'对应的ASCII码值为65。整型数据通常占用2个字节,最高位作为符号位,0表示正数,1表示负数。浮点型数据如单精度(float)和双精度(double)分别占用4个和...

    3STEP7中的基本数据类型重要[定义].pdf

    2. **字节(BYTE)**:字节数据类型有8位,使用B#16#表示,其中B表示字节,16#表示十六进制。取值范围从B#16#0到B#16#FF,即0到255。 3. **字(WORD)**:字数据类型有16位,有四种表示方法: - 二进制:如2#101,...

    cpp基本数据类型运算符与表达式实用PPT学习教案.pptx

    在C++中,基本数据类型是构建程序的基本单元,它们包括字符型(char)、整型(int)、浮点型(float和double)、布尔型(bool)以及无值型(void)。每种类型都有其特定的内存占用和能表示的数值范围。 字符型...

    Java字节码指令集的使用详细

    数据类型在字节码指令中扮演重要角色,许多指令都有特定的类型前缀,如i、l、s、b、c、f、d和a分别代表int、long、short、byte、char、float、double和对象引用。 加载和存储指令用于在局部变量表和操作数栈之间...

    JAVA数据类型

    Java提供了两种主要的数据类型:基本数据类型和引用数据类型。 基本数据类型涵盖了数值类型、字符类型和布尔类型,它们在内存中占有固定大小的空间,并且值在程序运行过程中不可更改(除非再次赋值)。下面是各类...

    jvm-java字节码规则.pdf

    - 当JVM遇到一个字节码指令时,它会根据指令的性质执行相应的操作,比如从常量池加载数据,或者从局部变量表中读取和存储值。 - 操作数栈在执行过程中动态变化,指令会将值压入栈,然后进行计算,结果再存回栈或...

    面向对象程序设计技术基本数据类型与表达式.docx

    面向对象程序设计技术中,数据类型是编程的基础,C++提供了多种数据类型,包括基本数据类型和自定义数据类型。基本数据类型主要包括整型、实型(浮点型)、字符型、枚举型以及布尔型等。在C++中,整型数据包括短整型...

Global site tag (gtag.js) - Google Analytics