gpt4 book ai didi

java - java中short和int的行为

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:03:04 24 4
gpt4 key购买 nike

我在scjp准备书中看到了这一道题。

public class Yikes {
public static void go(Long n) {
System.out.println("Long ");
}
public static void go(Short n) {
System.out.println("Short ");
}
public static void go(int n) {
System.out.println("int ");
}
public static void main(String [] args) {
short y = 6;
long z = 7;
go(y);
go(z);
}
}

输出是 int Long

我正在将 short 数据类型变量传递给重载方法 go。现在 go 也有一个 short 数据类型版本。那么如何调用带有 int 的呢?这种行为的原因是什么?

我是 java 新手。所以请在这里帮助我。

最佳答案

既然没有方法go(short s)可以选择,Java只好另选一个。这可以通过两种方式完成:

  1. 加宽,加宽shortint
  2. Autoboxing ,用 Short 包围 short,即相应的包装类。

由于 wideningautoboxing(在 Java 5 中引入)存在的时间更长,如果可用,JVM 会首先选择此备选方案。

因此,调用了go(int n)方法。

关于java - java中short和int的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12130606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com