zoukankan      html  css  js  c++  java
  • Java源码——String

      最近在研究java的源代码,但是由于自己英语水平有限,所以想使用中文注释的方式把源码里的方法全部重写

      一遍,下面是楼主整理出来的一小部分。我把整体的项目托管到GitHub上了,欢迎大家前去交流学习。

      GitHub : https://github.com/15128928804/yuanMa

      

    /**
    * @Author:zhuangfei
    * @Description:初始化一个新的 String 对象用来表示一个空的字符序列。
    * 注意,这个构造方法是没有使用的必要的,因为字符串是不可变的
    * @Date:16:48 2017/11/8
    */
    public String() {
    this.value = "".value;
    }

    /**
    * @Author:zhuangfei
    * @Description:初始化一个新的 String对象用来表示相同的字符序列作为参数,
    * 换句话说,新创建的字符串是参数字符串的副本。除非一个‘需要的’显示拷贝,
    * 否则是不必使用此构造函数的,因为字符串是不可变的
    * @Date:16:53 2017/11/8
    */
    public String(String original) {
    this.value = original.value;
    this.hash = original.hash;
    }

    /**
    * @Author:zhuangfei
    * @Description:分配一个新的String用来表示序列字符数组参数中包含的字符。
    * 在该字符数组的内容被复制后的修改中,字符数组不影响新创建的字符串
    * @Date:16:58 2017/11/8
    */
    public String(char value[]) {
    this.value = Arrays.copyOf(value, value.length);
    }

    /**
    * @Author:zhuangfei
    * @Description:分配一个新的String对象用来包含来自子数组的字符
    * 字符数组参数。offset参数是子数组的第一个字符和count位置的索引指定的
    * 子数组的长度的内容。
    * 子数组被复制后对子数组进行修改不影响新创建的字符串
    * value:源数据
    * offset:初始偏移
    * count:偏移长度
    * PS:如果offset和count所得到的值不在源数组的下标内,会抛出
    * IndexOutOfBoundsException(数组下标越界) 异常
    * @Date:17:02 2017/11/8
    */
    public String (char value[], int offset, int count) {
    if(offset < 0) { // 没有偏移量
    throw new StringIndexOutOfBoundsException(offset); // 抛出索引越界异常
    }
    if(count <= 0) {
    if(count < 0) {
    throw new StringIndexOutOfBoundsException(count); // 抛出索引越界异常
    }
    if(offset <= value.length) { // 初始偏移量<=源数据长度时直接返回源数据
    this.value = "".value;
    return;
    }
    }
    // 源码解释:偏移量或计数可能在 -1 附近
    if(offset > value.length - count) { // 初始偏移量>源数据-初始位置的数据后的长度
    throw new StringIndexOutOfBoundsException(offset + count); // 抛出索引越界异常
    }
    this.value = Arrays.copyOfRange(value, offset,offset+count); // 执行方法
    }
  • 相关阅读:
    Encryption (hard) CodeForces
    cf 1163D Mysterious Code (字符串, dp)
    AC日记——大整数的因子 openjudge 1.6 13
    AC日记——计算2的N次方 openjudge 1.6 12
    Ac日记——大整数减法 openjudge 1.6 11
    AC日记——大整数加法 openjudge 1.6 10
    AC日记——组合数问题 落谷 P2822 noip2016day2T1
    AC日记——向量点积计算 openjudge 1.6 09
    AC日记——石头剪刀布 openjudge 1.6 08
    AC日记——有趣的跳跃 openjudge 1.6 07
  • 原文地址:https://www.cnblogs.com/zhuangfei/p/7814866.html
Copyright © 2011-2022 走看看