欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

java string 异或_Java源码——String

发布时间:2024/9/27 java 32 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java string 异或_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); // 执行方法

}

总结

以上是生活随笔为你收集整理的java string 异或_Java源码——String的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。