类型转换与运算符

类型转换

由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换

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

运算中,不同类型的数据先转化为同一类型,然后进行运算

强制类型转换

public class Demo01 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte) i; // 内存溢出
        // 强制转换 (类型)变量名  高-->低

        System.out.println(i);
        System.out.println(b);
    }
}

自动类型转换

public class Demo02 {
    public static void main(String[] args) {
        int i = 128;
        double b = i; 
        // 自动转换 低-->高

        System.out.println(i);
        System.out.println(b);
    }
}

注意点:

  1. 不能对布尔值进行转换
  2. 不能把对象类型转换为不相干的类型
  3. 在把高容量转换到低容量的时候,强制转换
  4. 转换的时候可能存在内存溢出,或者精度问题!
public class Demo03 {
    public static void main(String[] args) {
        // 操作比较大的数的时候,注意溢出问题
        // JDK7新特性,数字之间可以用下划线分割
        int money = 10_0000_0000;
        int years = 20;
        int total = money * years;
        //-1474836480,计算的时候溢出
        long total2 = money * years;
        // 默认是int,转换之前已经存在问题了?

        long total3 = money * (long)years;
        // 先把一个数转换为long
        System.out.println(total3);
    }
}

Java语言支持如下运算符:

  • 算术运算符:+, -,*, /, %, ++, --
  • 赋值运算符:=
  • 关系运算符:>, <, >=, <=, ==, !=instanceof
  • 逻辑运算符:&&, ||, !
  • 位运算:&, |, ^, ~, >>, <<, >>>(了解)
  • 条件运算符: ? :
  • 扩展赋值运算符:+=, -=, *=, /=
posted @ 2021-02-17 19:53  ZHAN_FENG  阅读(40)  评论(0)    收藏  举报