将数字作为方法参数传递时,该数字将解析为什么数据类型?

public static void main(String[] args) {

    methodA(5);

}


public static void methodA(int i) {

    System.out.println("int method " + i);

}


public static void methodA(short s) {

    System.out.println("short method " + s);

}

上面java程序的输出是


整数方法 5


因此,当将 5 作为参数传递时,为什么调用带有 int 参数的方法而不是 short。


将参数转换为 short 后,将调用带有 short 参数的方法。


methodA((short)5);

当我通过 5 时,为什么 java 将其视为 int,而简而言之,我必须将其强制转换?考虑到,对于短数据类型,数字范围是 -32,768 到 32767。


月关宝盒
浏览 163回答 2
2回答

富国沪深

5是一个int字面量,因此它是一个int,而不是一个short。

浮云间

Integer 或Integer 常量的默认大小是4 字节,而short 是2 字节。您可以执行以下操作。      long t = 5;因为扩大原始转换不会丢失信息。对于以下内容,您需要进行转换,因为缩小原始转换会丢失信息和量级。编译器确保你是故意这样做的。     short t = (short)5;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java