2 cmf191734907 cmf191734907 于 2016.04.01 12:46 提问

对toString的一些问题

每个输出语句输出的都是String型的吗,是不是每个输出语句都隐式的调用了toString方法,int i=1,输出i,也是String型吗,可能表述有点问题,如果是隐式的调用,哪些也是隐式调用的,求大神给解释下,谢谢了

5个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.04.01 13:14
已采纳
   通常我们打印一个对象时system. out. print(对象),就会隐式调用对象的toString方法,默认调用的是Object的这个方法打印对象地址,如果这个对象类重写了这个方法,就会调用重写方法,这就是多态的表现,由对象的真实类型决定的。
wojiushiwo945you
wojiushiwo945you 回复cmf191734907: 基本类型就是直接打印值得,只有涉及到对象的打印操作才会调用toString的。你想复杂了哦。
一年多之前 回复
cmf191734907
cmf191734907 还有,今天刚了解到,比如输出20,是不是编译器先通过parseInt转换成二进制,再进行自动装箱,在String.valueOf转换成10进制输出字符的,求大神给仔细讲讲,特别想了解这个过程,谢谢
一年多之前 回复
cmf191734907
cmf191734907 恩,看到了,也就是说基本类型是通过valueOf转换成string的,引用类型是通过toString转换成string的,输出语句都是输出的string
一年多之前 回复
u014164952
u014164952 回复cmf191734907: 不是,可以看下源码,基本数据类型是调用的String.valueOf()方法
一年多之前 回复
cmf191734907
cmf191734907 那如果输出的是基本数据类型,会移动装箱,再调用toString吗
一年多之前 回复
wnl_csdn
wnl_csdn   2016.04.01 12:50

不是,System.out.println()语句可以输出Java的内置数据类型。

CSDNXIAOD
CSDNXIAOD   2016.04.01 12:52

提防toString递归问题
关于String 与ToString的问题
拾人牙慧 StringBuilder.toString()的问题
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

beau_lily
beau_lily   2016.04.01 13:44

toString()是任何对象都具有的方法

打印出的东西全部都是string类型的 不存在转换问题

xiaoyao880609
xiaoyao880609   2016.04.01 13:59

toString是Object方法,默认打印的是对象的内存地址,String是基本封装类型 所以复写的toString方法,如果要的是内容而不是地址信息,需要你复写toString方法。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!