摘要:
首先,我们看看在Java语言中,一个较为经典的问题。shorts = 1;s= s+1;读者认为上述程序执行后,s的值是多少?如果稍不注意,我们很容易的得到答案是s的值为2.但是,实际上上述程序根本就不会编译通过。为什么呢?原因是:1)java程序中,关于算术类型进行四则运算时,所有小于int类型的数进行运算时,其结果将转换为int类型,这是因为在计算时是按照机器字长进行的;2)Java类型转换非常严格,自动转型只能是从小类型到大类型进行,若反过来必须进行强制转型,即在前面加上强制转型运算符,例如,s=(short) (s+1);但如果上述程序是这样的,short s=1;s+=1;则程序运行 阅读全文