String类型对象的toString方法返回的不是类名+@+十六进制内存地址。

SilentHunter460 2020-02-05 12:43:15
书上说“Java中所有类都继承自Object类”。Object类自带toString实例方法,所以任何类天生都有toString方法,它返回指定对象的类名+@+十六进制内存地址。
但是String类型对象返回的却是用戶设定的字符串,是否说明String类重写的toString方法?



public static void main(String[] args) {
String sb = new String("iphone");
System.out.println(sb);
System.out.println(sb.toString());
}

...全文
627 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
CV-gcs 2022-11-10
  • 打赏
  • 举报
回复

确实是String 类重写了toString 方法,返回是当前String对象。

qq_46013408 2021-05-12
  • 打赏
  • 举报
回复
可string类重写的tostring是return this ,this也是内存地址,不应该打印的也是内存地址吗?为什么是字符串?求大佬解释困惑好长时间了,硬是想不通
锄禾~ 2021-10-03
  • 举报
回复
@qq_46013408 同问,这个return this返回的应该是this地址,就是返回一个对象,但是为什么变成""形式了呢?
CV-gcs 2022-11-10
  • 举报
回复
@锄禾~ 狗砸Object 的toString 也是返回String对象啊可以看看类PrintStream里面的public void println(String x) ;怎么实现的。
「已注销」 2020-02-06
  • 打赏
  • 举报
回复
是的,String重写的toString方法如下所示: /** * This object (which is already a string!) is itself returned. * * @return the string itself. */ public String toString() { return this; }
qybao 2020-02-05
  • 打赏
  • 举报
回复
是的,String重写了toString方法,在API文档里就有写,有时间可以多看看API文档

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧