字符额 “+” 操作
是拿字符在计算机底层对应的数值来进行计算单
-
‘A’ = 65 A-Z是连续的
-
'a' = 97 a-z是连续的
-
'0' = 48 0-9是连续的
提升规则:
-
byte类型,shot类型、char类型将被提升到int类型
-
整个表达式的类型自动提升到表达式中最高等级操作数同样的类型,等级循序:byte,short,char→int→long→float→double
public static void main(String[] args) { int i = 10; char c = 'A'; //A的值是65 ,char 类型的赋值用单引号 c='a'; //'a'的值是97 c='0'; //‘0’的值是48 System.out.println(i + c); //char ch=i+c; //报错。因为char类型会自动提升为int类型 int j=i+c; System.out.println(j); //int k=10+13.14; // 报错,因13.14是double类型,10是int类型的,double类型的等级必int类型的要高,所以结果应该是double类型的 double k=10+13.14; System.out.println(k); }
字符串的 “+” 操作
当“+”操作出现的字符串时,这个“+”是字符串连接符,而不是算数运算符。
例如:“test” + 666, 结果是test666
在+操作中,如果出现了字符串,就是连接运算符,否则就是算数运算符。当连续进行+操作时,从左到右逐个执行。
public static void main(String[] args) { System.out.println("test" + "str"); System.out.println("test" + 666); System.out.println(666 + "test"); System.out.println("test" + 100 + 1); System.out.println(1 + 100 + "test"); /* 字符串的 + 操作, 当“+”操作出现的字符串时,这个“+”是字符串连接符,而不是算数运算符。 例如:“test” + 666, 结果是test666 在+操作中,如果出现了字符串,就是连接运算符,否则就是算数运算符。当连续进行+操作时,从左到右逐个执行。 例如:1+99+test 结果是100test */ }