• String 和 CharSequence 关系与区别


    String 继承于CharSequence,也就是说String也是CharSequence类型。
    CharSequence是一个接口,它只包括length(), charAt(int index), subSequence(int start, int end)这几个API接口。除了String实现了CharSequence之外,StringBuffer和StringBuilder也实现了 CharSequence接口。
    需要说明的是,CharSequence就是字符序列,String, StringBuilder和StringBuffer本质上都是通过字符数组实现的!

    CharSequence 是 char 值的一个可读序列。此接口对许多不同种类的 char 序列提供统一的只读访问

    (个人理解应该算得上是char类型得一个集合,是interface)

    String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例来实现。

    CharSequence是String实现的一个接口,相当简单,就是要求是一串字符。所以每个参数类型是CharSequence的方法,都可以实际代入String对象。
    为什么这些方法不干脆定义String作为参数类型?因为还有其他的CharSequence类型的类,比如StringBuffer和StringBuilder这两个很重要的类。
    String对象是不可变的,这两个可变,所以我们在构造字符串的过程中往往要用到StringBuffer和StringBuilder。
    如果那些方法定义String作为参数类型,那么就没法对它们用那些方法,先得转化成String才能用。
    但StringBuffer和StringBuilder转换为String再转换过来很化时间的,用它们而不是直接用String的“加法”来构造新String本来就是为了省时间,
    所以如果用String作为参数类型就杯具了。
  • 相关阅读:
    信息产品是信息化理念的凝缩的精华
    自然科学技术表面上是反应人与自然的关系,更深层还是人与人之间的关系
    思与在,为何没有行
    haproxysocket 参数记录
    zabbix 监控 haproxy 记录
    Centos6.5安装OpenLDAP
    ansible mysql模块的使用今年
    haproxy 官方文档查看
    centos 7 部署 mysql 报错记录
    ansible playbook学习
  • 原文地址:https://www.cnblogs.com/ChrisMurphy/p/4760197.html
Copyright © 2020-2023  润新知