java中的转换数据类型赋值



我不明白为什么要使用{b=(byte)I}或{I=(int)d}this进行转换。请真诚地告诉我为什么会在皈依中发生这种事。下面是我的示例代码。

public class Conversion {
    public static void main(String[] args) {
        byte b;
        int i = 257;
        double d = 323.142;
        System.out.println("n Conversion int to byt");
        b = (byte) i;
        System.out.println("i and b "+i+ " after "+b);
        System.out.println("n Conversion int to byt");
        i = (int) d;
        System.out.println("d and i "+d+ " after "+i);
    }
}

byte的范围从-128 to 127开始,如果超出其限制,则必须显式将其强制转换为int就像int有范围一样,如果它超出了它的范围,你必须显式地投射

如果byte的值在-128 to 127的范围内,则不需要显式将其强制转换为int

要获得更多帮助,我有下面的链接,它将指导你

  1. Oracle关于基元数据类型的描述

  2. 为什么Java中的字节范围是128到127?

  3. 第五章。转换和促销

您正在执行"加宽原始转换"one_answers"缩小原始转换"。

https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.2https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.3

最新更新