Java类型转换

java类型转换

基本数据类型及对应的封装类

类型

转化规则

不同的类型数据需要先转化为同一类型,再进行运算。

转换从低级到高级(根据容量来看)

低 ------------------------>高

byte,short,char-> int -> long ->float ->double

类型转化需要满足的规则:

  • 不能对boolen类型进行转换。
  • 不能把对象类型转换为不相关类的对象。
  • 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
  • 转换过程中可能导致溢出或损失精度,例如:
int i=128;
byte b = (byte)i;

因为byte类型时8位,最大值127,所以当int类型强转为byte类型时,值128就会溢出。

  • 浮点数到整型的转换时通过舍弃小数得到的,例如:
(int)127 ==23;
(int)-45.89f == -45

自动类型转换

容量小的数据类型可以自动转换为容量大的数据类型。

public class Demo02 {
    public static void main(String[] args) {
        char c1 = 'a';//定义一个char类型
        int i1 = c1;//char自动转化为int
        System.out.println(i1);//97
        char c2 = 'A';
        int i2 = c2+1;
        System.out.println(i2);//66
    }
}

常见错误和问题

1、操作比较大的数时,要留意是否溢出,尤其是整数操作;

public class Demo03 {
    public static void main(String[] args) {
        int money = 1000000000;//10亿
        int years  = 20;
        int total = money*years;//返回负数
        long total1 = money*years;//返回负数。默认是int,因此结果会转化为int值,再转成long。但是已经发生数据丢失
        long total2 = money*((long)years);//先将一个因子变成long,整个表达式发生提升。全部用long计算
        System.out.println(total);
        System.out.println(total1);
        System.out.println(total2);
    }
}

2、L和l的问题:

  • 不要命名名字为l的变量
  • long类型使用大写L不要用小写

3、下划线分隔符

开发过程中特别长的数字可以使用下划线分隔符进行分割。

int b = 1_2929_1234
posted @ 2021-01-16 10:27  程序小宅  阅读(66)  评论(0)    收藏  举报