System.out.println("5+5"+5+5);
输出不是5+510而是5+555,为什么,给出字符运算具体规则
“”号里不就是字符串了,+ 当两端有一端是字符串的时候,就会把5给强转成字符串格式。
如果你像要是输出5+510应该给后面的加个()
System.out.println("5+5"+(5+5));
这样会先运算()内的表达式,之后再去连接字符串。
第一步计算“5+5”+5:因为有了前面的引号即字符串格式所以计算时将后面的5转化为字符串了,此时结果为“5+55”;
第二步计算“5+55”+5:同理得结果为5+555;
如果是5+5+“5+5”:结果应该是105+5
字符串相加,相当于字符串拼接
字符串类型加整型会自动类型转换。低级变量可以直接转换为高级变量,笔者称之为自动类型转换,例如,下面的语句可以在Java中直接通过:
byte b;
int i=b;
long l=b;
float f=b;
double d=b;
但是将double型变量赋值给float变量,不加强转的话会报错。
如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如r
char c='c';
int i=c;
System.out.println("output:" i);
输出:output:99;
对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。
short i=99;
char c=(char)i;
System.out.println("output:" c);
输出:output:c;