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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© .ˋMr.Ivan 中级黑马   /  2013-12-9 19:47  /  1369 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这个小知识点是在Thinking in java上看到了,个人感觉这种情况应该不是很常见,因为从我个人的习惯来讲,很少吧this拼接到字符串中,但是我想当有与其类似的需求时这种情况就很容易发生,而且最要命的是,当出现这种情况时,如果之前没有遇到过或看到过,错误点很难发现。
如下代码:

      public String toString(){                return "abc" + this;
        }

这个toString()的重写方法从表面上看没什么错误,但是要知道,this与字符串拼接的时候,会调用this的toString()方法,这样很显然就形成了递归调用,而且是没有结束条件的,这样的代码被运行,那你的内存不爆掉才怪呢!

Java的这些小东西非常值得大家研究一下。

评分

参与人数 1技术分 +1 黑马币 +3 收起 理由
狼王 + 1 + 3 赞一个!

查看全部评分

2 个回复

倒序浏览
一般没有这么写代码习惯,多谢分享
回复 使用道具 举报
胡永城 发表于 2013-12-9 20:27
一般没有这么写代码习惯,多谢分享

是啊,我也很少看到,但是这种问题如果无意识的犯了,感觉非常难发现
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马