您当前的位置: 首页 >  小志的博客 Java

深入理解Java虚拟机——类型转换指令

小志的博客 发布时间:2022-03-06 21:21:33 ,浏览量:4

目录

    • 一、类型转换指令的概述
    • 二、宽化类型转换
    • 三、窄化类型转换
    • 四、类型转换指令的示例

一、类型转换指令的概述

  • 类型转换指令可以将两种不同的数值类型进行相互转换,这些转换操作一般用于实现用户代码中的显示类型转换操作,或者用来处理字节码指令集中数据类型相关指令无法与数据类型一 一对应的问题。

二、宽化类型转换

  • 宽化类型转换(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字节码文件

关注
打赏
查看更多评论

小志的博客

暂无认证

  • 4浏览

    0关注

    1100博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录