首先要明确的是 '*' 的类型是char类型的 "*"的类型是String类型的
如果char + char,那么就会进行自动类型提升,变成 int(char) + int(char)
int('*') == 42; //即 * 的ASCII码
所以 int('*') + int('*') == 84;
而对于String + (char、int、。。。) ,都会将右边自动类型提升为String类型。
所以“*”+ '*' ----> ** // '*'自动类型提升为String类型,变成了“*”+“*”---->"**"
至于单独打印'*'的时候,没有进行运算,所以不存在自动类型提升,直接输出了char类型的 * 。
希望可以帮到你 |