s+=3;(这句就不会报错)(为什么呢???)----因为“+=”会做自动转换,而“=”不会。(疑问:short s = 4;既然在java里出现的4默认是int型,那这句赋值语句岂不是把int型的赋值给short型的啦?毕老师又说“=”不会自动转换,执行 short s = 4;这一句应该是错误的啊?因为是把高类型的赋值给了低类型的了。)
System.out.println(s);
执行 short s = 4;与执行s = s + 3;是两个不同的概念,short s = 4是因为4在short类型的范围之内,是个固定的值所以底层自动转换;
而s = s + 3,举个毕老师的例子:
好比两个四两的碗,得到的结果还是四两碗,如果把这四两的碗再交给二两的碗,此时就会装不下,而报错!