黑马程序员技术交流社区
标题:
Java 基础 输出语句 的面试题
[打印本页]
作者:
0_TNT_0
时间:
2014-12-10 23:36
标题:
Java 基础 输出语句 的面试题
请分别写出下列语句的输出结果:
System.out.println(1+2+"HH"+3+4);
System.out.println('a'+1+4+"rr"+3+'b');
System.out.println('d'+'c'+"HH"+'d'+'c');
System.out.println(1+2+'a'+3+4);
最好有大神能够总结出一些规律来。。。
作者:
史云龙
时间:
2014-12-10 23:39
3HH34
102rr3b
199HHdc
107
计算由前向右
char,short,byte,在运算过程中会进行类型提升为int。结果为int类型。
遇到字符串就全部换成字符串
作者:
提米特
时间:
2014-12-11 18:11
本帖最后由 提米特 于 2014-12-11 18:21 编辑
System.out.println(1+2+"HH"+3+4);----------------3HH34
System.out.println('a'+1+4+"rr"+3+'b');---------------102rr3b
System.out.println('d'+'c'+"HH"+'d'+'c');--------------199HHdc
System.out.println(1+2+'a'+3+4);-----------------107
我自己测试了一下,实际情况是: 一步一步来第一条:首先,1+2=3,碰到“HH”后,提升为字符串类型,后面的一并认为是字符串类型输出
第二条:首先分析'a'+1,a会自动类型提升为整型,因此相当于97+1+4=102,然后碰到了字符串,所以相当于字符串组合到一起再输出
第三条:首先'd'+'c',在字符型中计算没有任何意义,所以是类型提升为整形计算出结果为199,碰到了字符串,因此后面变成字符串的组合
第四条:首先是1+2=3,然后’a‘在这里会自动提升类型为整型,相当于它的二进制表达形式转化为10进制,即97,然后3+97+3+4=107
总结就是,一步一步算,碰到字符串就形成字符串。字符型在做加法时会自动类型提升为整形,相当于它的二进制表达形式对应的10进制。
作者:
java小兵
时间:
2014-12-11 19:01
哪里的面试题。。。
作者:
蛋卷
时间:
2014-12-11 20:02
3HH34 a14rr3b dcHHdc 3a34
作者:
Hello_Boys
时间:
2014-12-13 14:01
3HH34 102rr3b 199HHdc 107
作者:
lgc黑马
时间:
2014-12-13 21:19
System.out.println();
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2