java中charsequence_java中 CharSequence、Appendable 家族分析

画张草图,表示它们的继承关系

0818b9ca8b590ca3270a3433284dd417.png

CharSequence接口:

表示是一个字符序列,提供了一系列抽象方法,不能用在set和map这些类集中,String、StringBuffer、StringBuilder都实现了这个接口,因此他们都属于字符序列,并且要覆写CharSequence中的几个操作方法 。

Appendable接口:

表示实现此接口的子类可以对字符或字符串进行追加操作【提供有append(char c),append(CharSequence s)方法】,StringBuffer和StringBuilder都实现了这个接口,它们可以进行字符序列的追加操作 ,而String没有实现此接口,因此它不能进行拼接操作,也就不能改变内容。此接口并没有规定多线程访问是否安全,要在子类中规定。通过观察源码可以发现,StringBuilder和StringBuffer操作方法几乎一样,而唯一不同的是,StringBuffer中大部分方法都使用synchronized关键字声明,完成了线程了同步操作,而StringBuilder没有,因此,StringBuffer的安全性更好。但相反的,线程同步带来的问题就是性能问题,每条线程都要排队等待,而StringBuilder由于线程异步,具有更好的性能。

Comparable<>接口: 提供compareTo(T t)方法,表示能对指定类型的对象之间比较大小,一般需要覆写此方法完成具体的实现 。 Number类的子类都实现了这个接口,使包装类的对象能进行大小比较,String中compareTo(String s)方法用来比较两个字符串的大小,返回编码的差值 .

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值