因为代码运行是有先后顺序的,
System.out.println(obj+number+"为什么编译失败?");就拿这句话来说吧,
他会先运行obj+number,而number是int类型变量,而obj是Object类型的变量,是不能进行“+”号运算的,所以编译失败。
但是System.out.println("为什么编译成功?"+obj+number);这句话会编译成功而且会有运行结果,
因为任何数据跟""字符串进行加法运算后其结果都是字符串,所以"为什么编译成功?"会先跟obj运算结果是个字符串,
在跟number运算,结果也是个字符串。 |