为什么这段代码会打印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");
}
问题内容: 我有三个简短的变量。当我将两个加在一起并将结果分配给第三个时,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
我想知道为什么每当计算表达式或处理位操作时,和值都会被提升为?