发现一个很好玩的打印顺序
package com.liaojianya.chapter1; /** * This program demonstrates the string. * @author LIAO JIANYA * */ public class CTest { public static void main(String[] args) { int x = 5; int y = 6; System.out.println(x + y + 'a'); System.out.println(x + y + "a"); System.out.println("a" + x + y); System.out.println(6 + 6 + "aa" + 6 + 6); } }
运行结果:
108 11a a56 12aa66
第一个单引号的a直接将其对应于ASCII中的97数值,所以5+6+97=108.
第二个双引号,在5+6=11后,a是字符串,所以整型11被转换为字符串“11”,通过加号连接符构成新的字符串“11a”
第三个,由于“a”在最前面,所以后面的5和6都直接转换成字符串来跟前面的a相连接,所以打印出a56
第四个,字符串aa在中间,前面的6+6做整型数值运算,变成12,后者的6+6是跟在“aa”后面,所以转换为字符串来处理,所以最后打印12aa66。
这样的结果是不是很有趣?