黑马程序员技术交流社区
标题: 一道列题第一次做错了,你们错了吗 [打印本页]
作者: Miss.H 时间: 2015-7-7 23:57
标题: 一道列题第一次做错了,你们错了吗
语句System.out.println(1+2+"java"+3+4)输出的结果是:
A: 3java34
B: 12java34
C: 3java7
D: 12java7
这道题选A 开始1+2时候是数据相加,到java 的时候就是连接符了,之后无论加什么都是字符串了不作运算了
作者: vinoMVP 时间: 2015-7-8 00:14
So easy![](static/image/smiley/alibaba/39.gif)
作者: 杨基米德 时间: 2015-7-8 06:39
好的,记住了~
作者: wing-SF 时间: 2015-7-8 07:41
好吧,不过个人感觉应该看看system.out.println的源代码,这样能确定到底是怎么了个加的过程。自己查阅了api发现,system.out.println()接收的参数类型有限
如果是“1+2+“java”+3+4”,应该会按照obj对象,而system.out.println(object x)的第一句是String s=String.valueOf(x),继续查阅valueOf方法,
该方法就一句话 :return (obj==null)?“null”:obj.toString(),在查toString,傻了
public String toString(){
return getClass().getName()+"@"+Integer.toHexString(hashCode());
}
这个函数用到了反射,昨天刚看的,还是解释不了,为什么会输出3java34,求大牛。。。
作者: zhuoxiuwu 时间: 2015-7-8 08:41
题是不会做错,
作者: Morgan 时间: 2015-7-8 08:43
学习了!
作者: maizi1912 时间: 2015-7-8 18:16
选A 可是很容易粗心选了B
作者: 心在左边跳 时间: 2015-7-8 18:20
:dizzy:这有什么意义,奇技淫巧,这种莫名其妙的知识点有必要劳神?本来JAVA重要的知识就不少了。
作者: 357955778 时间: 2015-7-8 21:02
很经典的题目,学习!
作者: 发抖的_DtYJA 时间: 2015-7-8 22:49
很经典的题目,学习!
作者: 贾森 时间: 2015-7-8 22:56
细心一点就不会错
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |