《Thanking in Java》13.字符串

2017-10-26  本文已影响5人  Lemon_Home

13.1 不可变String

String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象。指向的引用对象其实一直待在单一的物理位置上。

13.2 重载+与StringBuilder

+重载的实现原理:自动引入了StringBuilder,因为更高效。在+时,调用了append方法。但并不意味着所有的情况都能使用+,因为在循环中,每次循环都在创建新的StringBuilder对象。

当编写toString方法时,如果字符串操作比较简单,那就可以信赖编译器,它会合理地构造最终的字符串结果。但是,如果要在toString方法中使用循环,那么最好自己创建一个StringBuilder对象,用它来构造最终的结果。

13.3 无意识的递归

容器都有toString方法,并且覆盖此方法使得它生成的String对象能够表达容器自身,以及容器所包含的对象。

打印内存地址时,不应该使用this直接打印,而是应该调用super.toString方法。

13.5 格式化输出

System.out.printf与System.out.format是等价的。

String.format是一个static方法,它接受与Formatter.format方法一样的参数,但返回一个String对象。

上一篇下一篇

猜你喜欢

热点阅读