Java基本类型,默认取值,取值范围,数据转换


自动类型转换

Java支持自动类型转换的类型如下所示,左边的数值类型可以自动类型转换成箭头右边的数值类型。

1),byte->short->int->long->float->double

2),char->int->long->float->double

 {  
        // 下面3行代码int类型自动转换成float类型  
        int a = 6;  
        long b = a;  
        System.out.println(b);  
    }
如果希望把基本类型的值转换为对应的字符串时,可以把基本类型的值和一个空字符串进行连接。

{  
        // 一个基本类型的值和字符串进行连接运算,基本类型的值自动转换成字符串  
        int a = 6;  
        System.out.println(a + "");  
        // 下面的语句输出7LinkinPark  
        System.out.println(3 + 4 + "LinkinPark");  
        // 下面的语句输出LinkinPark34  
        System.out.println("LinkinPark" + 3 + 4);  
    }

强制类型转换

如果希望上面自动转换中,箭头右边的类型转换成左边的类型,则必须进行强制类型转换。

强制类型转换的语法格式:(targetType)value,强制类型转换的运算符是圆括号(())。

当进行强制类型转换时,类似于把一个大瓶子里面的水倒入一个小瓶子,如果大瓶子里面的水不多还好,如果大瓶子里面的水很多

,将会引起溢出,从而造成数据丢失。

这种类型也称为缩小转换。

  {  
        // 下面3行代码输出-23,典型的溢出 
 
        int intValue = 233;  
        byte byteValue = (byte) intValue;  
        System.out.println(byteValue);  


        // 下面3行代码输出3,典型的信息丢失  
        double doubleValue = 3.14;  
        int iValue = (int) doubleValue;  
        System.out.println(iValue);  
    }



表达式类型的自动提升

当一个算数表达式包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升。

    {  
        // 下面2行代码出错,shortValue类型参与运算,类型自动提升到int  
        // 将一个int类型的值赋给一个short类型的值,编译不过  
        short shortValue = 5;  
        shortValue = shortValue - 2;  
        // 下面4行代码正确,3个不同类型的值参与运算,类型提升到最高的类型  
        // double,int,byte中,double类型最高,所以结果double类型  
        byte byteValue = 4;  
        int intValue = 1;  
        double doubleValue = 2.33;  
        double result = byteValue + intValue + doubleValue;  
        System.out.println(byteValue + intValue + doubleValue);  
        // 下面代码的类型同样为double  
        System.out.println(doubleValue / intValue);  
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值