22.基础语法-类型转换

22 类型转换

22.1 常规类型转换

  数值范围的类型的变量,可以直接赋值给数值范围的类型的变量,实现自动类型转换,反之则不行

  从小到大:byte -> short -> int -> long -> float -> double

正常类型转换

        byte x = 10;
        int y = x;
        System.out.println(y); // 10

image

1.申请 byte 类型,byte 是 1 个字节,因此申请的空间是 00000000,空间叫 x,然后将 10 存入 00001010

2.申请 int 类型,int 是 4 个字节,因此申请的空间是 00000000|00000000|00000000|00000000,空间叫 y

3.将 x 赋值给 y,x 是 1个字节,y 是 4个字节,因此 x 需要先从 y 的低位开始填充,存入 00000000|00000000|00000000|00001010

22.2 强制类型转换

强制类型转换:将一种数据类型强制转为另一种数据类型。

        int x = 10;
        byte y = (byte) x;
        System.out.println(y);

image

1.申请 int 类型,int 是 4 个字节,因此申请的空间是 00000000|00000000|00000000|00000000,空间叫 x,然后将 10 存入 00000000|00000000|00000000|00001010

2.申请 byte 类型,byte 是 1 个字节,因此申请的空间是 00000000,空间叫 y

3.将 x 的 int 强制转换为 byte,即由 4 个字节转为了 1 个字节,会舍弃前面三个字节的内容,而只将 int 第四字节内容填充到 byte 中,存入 00001010

注意:强制转换要注意是否在转换范围内,否则将因字节空间的丢失,而导致数据不一致

22.3 演示

鼠标放到 chap05 行,新建 New -> Java Class -> 输入 TypeCastDemo(创建类)

package com.itheima.chap05;

public class TypeCastDemo {
    public static void main(String[] args) {
        // 1.自动类型转换, 小转大
        byte x = 127;
        int y = x;
        System.out.println(y);

        // 2.强制类型转换(在转换范围内)
        int a = 100;
        // byte b = a;  // 正常转换报错误, 不可转换, 不可大转小
        byte b = (byte) a;  // 强制类型转换
        System.out.println(b);  // 在转换范围内, 强制转换后, 数据一致

        // 3.强制类型转换(不在转换范围内)
        int c = 1030;  // 二进制 四字节 0000 0100 0000 0110
        byte d = (byte) c;  // 转为两字节 0000 0110
        System.out.println(d);  // 6
    }
}

------------------------------------------------ 执行后
D:\Software\jdk17\bin\java.exe "-javaagent:D:\Software\JetBrainsIntelliJ IDEA 2025.2.4\lib\idea_rt.jar=2849" -Dfile.encoding=UTF-8 -classpath D:\Software\JavaCode\p1-basic\out\production\p1-basic com.itheima.chap05.TypeCastDemo
127
100
6

Process finished with exit code 0

———————————————————————————————————————————————————————————————————————————

                                                                                                                         无敌小马爱学习

posted on 2025-12-16 15:15  马俊南  阅读(2)  评论(0)    收藏  举报