Java类型转换

Java类型转换

注意:不同类型的数据需要先转化为同一类型,然后进行运算。

  • 转换的容量顺序:byte-short-char-int-long-float-double,小数优先级大于整数。
  • 强制类型转换:从低到高。
    强制转化格式:(类型)变量名,如果内存溢出,转换可能出错。
    byte b = (byte)i;//强制转换
  • 自动类型转换:从高到低。
    double d = i;//自动转换 System.out.println(d);
public class Test2 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte)i;//强制转换
        System.out.println(i);
        System.out.println(b);
        //内存溢出,导致转换数值不定
        double d = i;//自动转换
        System.out.println(d);
        /*
        注意点:
        1.不能对布尔值进行转换。
        2.不能把对象类型转换为不相关的类型。
        3.高容量转换为低容量时使用强制转换。
        4.转换时可能存在内存溢出或精度问题。
         */
        System.out.println("=======================================================");
        System.out.println((int) 23.7);
        System.out.println((int) -45.89f);//精度问题
        System.out.println("=======================================================");
        char c = 'a';
        int q = c+1;
        System.out.println(q);
        System.out.println((char) q);
    }
}
  • 某些代码中会将小写l视为1,所以尽可能使用L。
  • 转换溢出:
public class Test3 {
   public static void main(String[] args) {
       //操作比较大的数时注意溢出。
       //JDK7特性,数字之间可以用下划线分割。
       int money = 10_0000_0000;
       System.out.println(money);
       int years = 20;
       int total = money*years;//计算时溢出
       System.out.println(total);
       long total2 = money*years;
       System.out.println(total2);//计算过程中溢出,转换也会出问题。
       long total3 = money*((long)years);
       System.out.println(total3);//为避免出现错误,先将一个较大的值转换为long之类容量较大的类型。
       //某些代码中会将小写l视为1,所以尽可能使用L。
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值