对这道题目,换一个思维方式去理解就好了。打个比方吧,用我们最熟悉的'a'验证一下。
- System.out.println('a'+0); //首先,字符a在内存空间占1bit(字节),0默认是int型,占4bit;然后,'a'会自动提升为int型,对照ASCII码表是数字97,所以输出为97。
- System.out.println((char)(97+0));//首先,(97+0)还是97,默认int型;然后对照ASCII码表,就是字符'a',所以强转后输出是字符a
- System.out.println((char)('a'+0));//首先,'a'会自动提升为int型,对照ASCII码表是数字97,所以加0还是97;然后数字97强转回字符类型,对照ASCII码表当然是输出'a'啦。
复制代码
现在,我们再看看lz问题。
1、'5'在ASCII中查阅就是53;
2、输出来是字符类型的梅花,梅花在ASCII中对应的就是5;
3、输出是5,肯定就是字符5啦。
(编程思想很重要,有助于我们代码,加油吧!) |