当前位置: 首页 > 面试题库 >

用short和int重载

贝成业
2023-03-14
问题内容

为什么这段代码会打印int?

public static void main(String[] args) {
    short s = 5;
    A(s);
}
public static void A(int a){
    System.out.println("int");
}

public static void A(Short a){
    System.out.println("short");
}

问题答案:

因为int在Java 1.0版中向上广播到,而在5.0版中添加了自动装箱。更改行为将破坏为较旧版本的Java编写的代码。

但是,这样的混合类型表明您的设计存在问题,这只是您将在拼图游戏中找到的。;)



 类似资料:
  • 问题内容: 我有三个简短的变量。当我将两个加在一起并将结果分配给第三个时,eclipse告诉我需要将其强制转换为short! 但是,当我先进行简单分配,然后进行增量分配时,一切都很好。 为什么是这样 ? 问题答案: JLS(第15.8.2节)说: “将二进制+运算符应用于两个数字类型的操作数时,将执行加法运算,从而得出这些操作数之和。” “对操作数执行二进制数值提升(第 5.6.2节 )。” 这意

  • 问题内容: 我的一位同事向我问了这个问题,我有些困惑。 该声明 编译很好但是 不 Java在这里做什么? 问题答案: int i = 123456; short x = 12; x += i; 实际上是 而仅仅是。它不会自动转换为a ,因此会导致错误(类型为)。 形式的复合赋值表达式等效于,其中是的类型,不同之处在于该表达式仅被评估一次。 - JLS§15.26.2

  • 描述 (Description) java.lang.reflect.Array.getShort(Object array, int index)方法返回指定数组对象中索引组件的值,作为short。 声明 (Declaration) 以下是java.lang.reflect.Array.getShort(Object array, int index)方法的声明。 public static s

  • 描述 (Description) java.lang.reflect.Array.setShort(Object array, int index, short value)方法将指定数组对象的索引组件的值设置为指定的short值。 声明 (Declaration) 以下是java.lang.reflect.Array.setShort(Object array, int index, short

  • 我想知道为什么每当计算表达式或处理位操作时,和值都会被提升为?