黑马程序员技术交流社区

标题: 一道列题第一次做错了,你们错了吗 [打印本页]

作者: 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
作者: 杨基米德    时间: 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