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

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

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。

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

posted @ 2016-07-15 10:26  Andya_net  阅读(390)  评论(0编辑  收藏  举报