Java基础04——类型转换

类型转换

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

    低 ------------------------------------------ 高
    byte,short,char-> int -> long -> float -> double
    
  • 运算中,不同类型的数据先转化为同一类型,然后进行运算。

JAVA基本类型之间转换的两种方式:

1. 强制类型转换(高 ——> 低)

  • 语法:(需要转换成的类型) 变量名

  • 示例:

    public class Test {
        public static void main(String[] args) {
            int a = 127;
            // 强制转换  (类型)变量名  高-低
            byte b = (byte) a;
            System.out.println("a = " + a);// 127
            System.out.println("b = " + b);// -127
        }
    }
    

2. 自动类型转换(低 ——> 高)

  • 语法:直接等于

  • 示例:

    public class Test {
        public static void main(String[] args) {
            int a = 128;
            // 自动转换   低 - 高
            double b = a;
            System.out.println("a = " + a);// 128
            System.out.println("c = " + c);// 128.0
        }
    }
    

内存溢出

如下代码所示:

public class Test {
 public static void main(String[] args) {
     /*
     byte是8位1字节,所表示十进制数的范围为 -128——127
     int是32位4字节,所表示十进制数的范围为 -2147483648—— 2147483647
      */
     int a = 128;
     // 强行转换为导致内存溢出,最终输出为-128
     byte b = (byte) a;
     System.out.println("a = " + a);// 128
     System.out.println("b = " + b);// -128
 }
}

注意点

  1. 不能对布尔值转换

  2. 不能把对象类型转换为不相干的类型

  3. 在把高容量转换低容量的时候,强制转换

  4. 转换的时候可能存在内存溢出,或者精度问题

posted @ 2022-01-11 20:02  凶巴巴17  阅读(34)  评论(0编辑  收藏  举报