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

187

1 【原理】:

2 【命令】

javac Main.java

javap -verbose -p Main.class

3 【直接贴代码和反编译的指令】:
short s1=1;s1=s1+1; 这个肯定被编译器拒绝的! 没有显示的类型转换

public class TES  {
    public static void main(String[] args) {
        int s11=1;
        s11 = s11 +1;
    }
}

正常4条指令完成

public class TES  {
    public static void main(String[] args) {
        short s11=1;
        s11+=1;
    }
}

这个需要五行指令,多了一个类型转换int 2 short的指令