打印出不同顺序的字符串&单引号和双引号的差异

发现一个很好玩的打印顺序

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。

这样的结果是不是很有趣? 

上一篇:A Tour of Go Nil slices


下一篇:(hdu)5391 Zball in Tina Town