黑马程序员技术交流社区

标题: 关于String的一个问题 [打印本页]

作者: yuchunfeng1221    时间: 2013-10-15 02:45
标题: 关于String的一个问题
本帖最后由 yuchunfeng1221 于 2013-10-16 15:26 编辑

String中有许多方法,比如replace(CharSequence target, CharSequence replacement) 就是其中之一,
此方法可以“abcc”.replace(“b”,“aa”),就把“abcc”替换成了“aaacc”,
我的问题是这样的,
String和charSequence在这里似乎是一样的,我想知道它们有什么区别呢?


作者: 狼王    时间: 2013-10-15 07:03
该问题可以参考:http://zhidao.baidu.com/link?url ... FiEpc_KCkF9RRaQjYJK
作者: 向阳泪无痕    时间: 2013-10-15 10:06
CharSequence 是一个接口  , 它对许多不同种类的 char 序列提供统一的只读访问,char 值表示 Basic Multilingual Plane (BMP) 或代理项中的一个字符。有关详细信息,请参阅 Unicode 字符表示形式。而 String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。
作者: 雷丹    时间: 2013-10-15 11:40
String就是对char数组的封装
作者: 潘才新    时间: 2013-10-15 21:06
!楼主妹子一枚{:soso_e113:}?
作者: 未知数|X|    时间: 2013-10-20 12:02
本帖最后由 未知数|X| 于 2013-10-20 12:03 编辑

其实你查一下API你就会知道 String 实现了CharSequence也就是说CharSequence是String的父接口,你的这个replace(CharSequence target, CharSequence replacement) 不就相当于多态吗,父类型引用指向子类对象,所以是可以直接传字符串的,下面是API里面的源码部分你可以看看
public final class String extends Object implements Serializable, Comparable<String>, CharSequence





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2