java中如何理解:其他类型 + string 与 自增类型转换和赋值类型转换 一、字符串与其他类型连接 public class DemoString{ public static void main(String[] args){ System.out.println(5 + 5 + " 5 + 5 = " + 5 +5 ); } } 输出 out: 105 + 5 55 why?
自左向右运算,+号有字符串参与的话就是连接的作用,因为他没法直接运算. 任何类型和字符串相加都会变成字符串类型 字符串就相当于生化危机中的僵尸,碰到谁就把谁感染成僵尸
二、类型转换之自增自减和赋值 1. 类型转换易错点: public class Demo01{ public static void main(String[] args){ short s = 1; s = s + 1; System.out.println(s); } } 输出: out: Demo01.java:4: 错误: 不兼容的类型: 从int转换到short可能会有损失 s = s + 1; ^ 1 个错误 why?char/ short/byte类型的数,参与运算时,自动转换为int类型
2. 自增自减类型不发生转换: public class Demo01{ public static void main(String[] args){ short s = 1; s++; System.out.println(s); } } 输出: out: 2 3. 赋值运算类型内部转换: public class Demo01{ public static void main(String[] args){ short s = 1; s+=1; System.out.println(s); } } 输出: out: 2 why? s += 1; ===> s = short(s+1)对右侧的变量表达式,整体进行强制类型转换