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); // 执行方法
    }
  • 相关阅读:
    paip.Answer 3.0 注册功能SQL注入漏洞解决方案
    paip.PHPasp—jsp实现事件机制 WEBFORM式开发
    paip.SQL特殊字符转义字符处理
    paip.提升效率更改数组LIST对象值for与FOREACH
    paip.提升效率源码生成流程图工具
    paip.提升安全性动态KEY
    paip.regf文件读取与编辑
    paip.提升开发效率终极方法组件化及其障碍
    提升安全性用户资金防篡改
    paip.提升安全性360,WI,AWVS三款WEB程序安全检测软件使用总结
  • 原文地址:https://www.cnblogs.com/zhuangfei/p/7814866.html
Copyright © 2011-2022 走看看