short s1 = 1; s1 = s1 + 1; 有什么错? short s1 = 1; s1 += 1; 有什么错?

对于 short s1 = 1; s1 = s1 + 1; 由于 s1+1 运算时会自动提升表达式的类型,所以结果是 int 型,再赋值
给 short 类型 s1 时,编译器将报告需要强制转换类型的错误。
对于 short s1 = 1; s1 += 1;由于 += 是 java 语言规定的运算符,java 编译器会对它进行特殊处理,因此

可以正确编译

public class TestShort {

	public static void main(String[] args) {
		short s1=1;
		s1=s1+1;
		System.out.println(s1);

	}

}

short s1 = 1; s1 = s1 + 1; 有什么错? short s1 = 1; s1 += 1; 有什么错?_第1张图片


public class TestShort {

	public static void main(String[] args) {
		short s1 = 1;
		s1 += 1;
		System.out.println("s1=" + s1);

	}

}
short s1 = 1; s1 = s1 + 1; 有什么错? short s1 = 1; s1 += 1; 有什么错?_第2张图片

你可能感兴趣的:(面试题)