JDK8源码阅读(五) java.lang.CharSequence

一、类

1.1 类修饰符

A. 是一个接口,

B. 字符序列是字符值的可读序列。这个接口提供了对许多不同类型字符序列的统一只读访问。char值表示基本多语言平面(BMP)或代理项中的字符。有关详细信息,请参阅Unicode字符表示;

C. 此接口不优化equals和hashcode方法的常规约定。因此,比较实现charsequence的两个对象的结果通常是未定义的。每个对象可以由不同的类实现,并且不能保证每个类都能够测试其实例是否与另一个类的实例相等。因此,不适合将任意字符序列实例用作集合中的元素或映射中的键;

 

1.2 类结构图

 

二、字段

1.1 字段列表

无。

 

三、方法

3.1 方法列表

 

注:如上图,共有6个方法。 

        绿色打开的锁代表是public,  红色关闭的代表是private, 灰色的钥匙代表的protected。

 

3.2 方法修饰符


3.3 方法详解

3.3.0 [静态]代码块

无。

 

3.3.1 length()

A. 返回此字符序列的长度。长度是序列中16位字符的数目;

 

3.3.2 charAt(int index)

A. 返回指定索引处的char值。索引的范围从零到length()-1。对于数组索引,序列的第一个char值位于索引0,下一个位于索引1,依此类推。如果索引指定的char值是代理项,则返回代理项值。

 

3.3.3 subSequence(int start, int end)

A. 返回此序列的子序列的CharSequence。子序列以指定索引处的char值开始,以index end-1处的char值结束。返回序列的长度(以字符为单位)为end-start,因此如果start==end,则返回空序列;

 

3.3.4 toString()

A. 返回一个字符串,该字符串包含此序列中与此序列顺序相同的字符。字符串的长度将是该序列的长度;

 

3.3.5 chars()  TODO(待分析)

 

A. 返回从该序列零扩展char值的int类型的流。映射到代理代码点的任何字符都将通过uninterpreted传递。如果序列在读取流时发生变异,则结果未定义;

B. TODO

 

3.3.6 codePoints()   TODO(待分析)

 

A. 返回此序列中的代码点值流。序列中遇到的任何代理项对都将按character.tocodepoint组合,结果将传递给流。任何其他代码单元,包括普通的BMP字符、不成对的代理项和未定义的代码单元,都被零扩展为int值,然后这些值被传递给流。如果序列在读取流时发生变异,则结果未定义;

B. TODO

 

四. JDK8源码阅读系列链接

  1. JDK8源码阅读(一) java.util.Object
  2. JDK8源码阅读(二) java.util.Objects
  3. JDK8源码阅读(三) java.io.Serializable   
  4. JDK8源码阅读(四) java.lang.Comparable
  5. JDK8源码阅读(五) java.lang.CharSequence
  6. JDK8源码阅读(六) java.lang.String

注: 今年要把JDK的一些基本的类的源码整理出来,欢迎大家指正和讨论。

         如果有错误的地方,欢迎各位老师指正。

         如果您觉得还不错,点个赞的话  我会很感激的,谢谢~

         转载请注明链接来源即可。

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值