A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

语句System.out.println(1+2+"java"+3+4)输出的结果是:
A: 3java34
B: 12java34
C: 3java7
D: 12java7
这道题选A 开始1+2时候是数据相加,到java 的时候就是连接符了,之后无论加什么都是字符串了不作运算了

10 个回复

倒序浏览
So easy
回复 使用道具 举报
杨基米德 来自手机 中级黑马 2015-7-8 06:39:51
藤椅
好的,记住了~
回复 使用道具 举报
好吧,不过个人感觉应该看看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,求大牛。。。
回复 使用道具 举报 1 0
题是不会做错,
回复 使用道具 举报
学习了!
回复 使用道具 举报
选A  可是很容易粗心选了B
回复 使用道具 举报
:dizzy:这有什么意义,奇技淫巧,这种莫名其妙的知识点有必要劳神?本来JAVA重要的知识就不少了。
回复 使用道具 举报
很经典的题目,学习!
回复 使用道具 举报
很经典的题目,学习!
回复 使用道具 举报
细心一点就不会错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马