Puzzle 11: The Last Laugh
最后的哈哈
最后的哈哈
以下代码片段运行之后, 会输出HaHa吗?
System.out.print("H" + "a");
System.out.println('H' + 'a');
运行一下先, 输出:
Ha169
想要输出HaHa的话, 这种改写方式较为简单 -- 在最左边加上空字串:
System.out.println("" + 'H' + 'a');
注意, Java的计算顺序(TODO 需要对应的JLS链接), 如果写成:
System.out.println('H' + 'a' + "");
输出的将仍然是169
对于+操作符, 只要有一个操作数为String类型, 那么就会按字符串连接计算. 如果不含有String类型, 那么数字字符的操作数和字符会
如:
System.out.println("2 + 2 = " + 2 + 2);
输出的是:
2 + 2 = 22
而
System.out.println("2 + 2 = " + (2 + 2));
输出的是:
2 + 2 = 4
附
- JLS 5.1.2 Widening Primitive Conversion
- JLS 5.6.2 Binary Numeric Promotion