Java 为什么总是调用整数参数方法而不是短参数方法

Java 为什么总是调用整数参数方法而不是短参数方法,java,overloading,Java,Overloading,这是我的代码: public class Test { public static void main(String arg[]) { new Test().method1(5); } public void method1(int b) { // integer method System.out.println("integer "); } public void method1(short a) { // short

这是我的代码:

public class Test 
{
    public static void main(String arg[]) {
        new Test().method1(5);
    }
    public void method1(int b) { // integer method
        System.out.println("integer ");
    }
    public void method1(short a) { // short method
        System.out.println("short");
    }
}

我正在运行这个类,它给我的结果是
integer
。为什么它没有给出
short

文本
5
具有类型
int
,这就是为什么需要
int
的方法被调用


newtest().method1((short)5)
将调用需要
short
的方法文本
5
具有类型
int
,这就是需要
int
的方法被调用的原因


newtest().method1((short)5)
将调用需要
short
的方法文本
5
具有类型
int
,这就是需要
int
的方法被调用的原因


newtest().method1((short)5)
将调用需要
short
的方法文本
5
具有类型
int
,这就是需要
int
的方法被调用的原因


newtest().method1((short)5)
将调用需要
short
的方法,因为文本
5
默认理解为
int
。如果要调用
method1(短a)
方法,需要显式执行强制转换:

new Test().method1((short) 5);

因为文本
5
默认理解为
int
。如果要调用
method1(短a)
方法,需要显式执行强制转换:

new Test().method1((short) 5);

因为文本
5
默认理解为
int
。如果要调用
method1(短a)
方法,需要显式执行强制转换:

new Test().method1((short) 5);

因为文本
5
默认理解为
int
。如果要调用
method1(短a)
方法,需要显式执行强制转换:

new Test().method1((short) 5);

Java整数文本的默认类型是int,这就是调用integer方法的原因。

Java整数文本的默认类型是int,这就是调用integer方法的原因。

Java整数文本的默认类型是int,这就是调用integer方法的原因。

Java整数文本的默认类型是int,这就是原因integer方法正在被调用。

您必须应用
类型转换,因为您愿意调用接收短消息的函数


尝试调用:
(short)5
您必须应用
类型转换
,因为您愿意调用接收short的函数


尝试调用:
(short)5
您必须应用
类型转换
,因为您愿意调用接收short的函数


尝试调用:
(short)5
您必须应用
类型转换
,因为您愿意调用接收short的函数


试着用:
(short)5
呼叫,这是因为,如其他答案所述,
5
本身表示
int
。您可以通过附加
L
来表示
long
,因此
5L
将被视为
long
。如果需要
字节
,则必须显式强制转换

您可能有很好的理由想要一个采用
short
的方法,但请记住这是非常罕见的。当然,出于性能原因,您不希望这样做。Java默认使用32位
int
,因为几乎所有处理器都可以在本地使用32位整数。您可能会发现
short
int
运行得慢


(当然,如果你专门做16位算术,那么你可能仍然需要使用
short

这是因为,如其他答案所述,
5
本身表示
int
。您可以通过附加
L
来表示
long
,因此
5L
将被视为
long
。如果需要
字节
,则必须显式强制转换

您可能有很好的理由想要一个采用
short
的方法,但请记住这是非常罕见的。当然,出于性能原因,您不希望这样做。Java默认使用32位
int
,因为几乎所有处理器都可以在本地使用32位整数。您可能会发现
short
int
运行得慢


(当然,如果你专门做16位算术,那么你可能仍然需要使用
short

这是因为,如其他答案所述,
5
本身表示
int
。您可以通过附加
L
来表示
long
,因此
5L
将被视为
long
。如果需要
字节
,则必须显式强制转换

您可能有很好的理由想要一个采用
short
的方法,但请记住这是非常罕见的。当然,出于性能原因,您不希望这样做。Java默认使用32位
int
,因为几乎所有处理器都可以在本地使用32位整数。您可能会发现
short
int
运行得慢


(当然,如果你专门做16位算术,那么你可能仍然需要使用
short

这是因为,如其他答案所述,
5
本身表示
int
。您可以通过附加
L
来表示
long
,因此
5L
将被视为
long
。如果需要
字节
,则必须显式强制转换

也许你有一个