深入理解Java虚拟机——类型转换指令
Posted 小志的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解Java虚拟机——类型转换指令相关的知识,希望对你有一定的参考价值。
目录
一、类型转换指令的概述
- 类型转换指令可以将两种不同的数值类型进行相互转换,这些转换操作一般用于实现用户代码中的显示类型转换操作,或者用来处理字节码指令集中数据类型相关指令无法与数据类型一 一对应的问题。
二、宽化类型转换
- 宽化类型转换(Widening Numeric Conversions)即小范围类型向大范围类型的安全转换。
- int类型到long、float或者double类型。
- long类型到float、double类型。
- float类型到double类型。
三、窄化类型转换
- 窄化类型转换(Narrowing Numeric Conversions),必须显示地使用转换指令来完成,这些转换指令包括:i2b、i2c、i2s、l2i、f2i、f2l、d2i、d21、和d2f。
- 窄化类型转换可能会导致转换结果产生不同的正负号、不同的数量级的情况。转换过程很可能会导致数值的精度丢失。
四、类型转换指令的示例
-
源码
public class Test1 public int add(int a,int b) long c= 10; int d=(int)c; return 1+1;
-
执行javac命令,生成.class文件
-
执行javap命令,分析.class字节码文件
以上是关于深入理解Java虚拟机——类型转换指令的主要内容,如果未能解决你的问题,请参考以下文章