20200829-齐元朝

问题

String类中以下两个类方法的区别:

1.public static String valueOf(char[] data , int offect , int count);

2.public static String copyvalueOf(char[] data , int offect , int count);

在java6API的描述是这样的:

1.public static String valueOf(char[] data , int offect , int count);

返回 char 数组参数的特定子数组的字符串表示形式。

offset 参数是子数组的第一个字符的索引。count 参数指定子数组的长度。字符数组的内容已被复制,后续修改不会影响新创建的字符串。

  • 参数:

    data - 字符数组。

    offset - String 值的初始偏移量。

    count - String 值的长度。

  • 返回:

    一个字符串,它表示在字符数组参数的子数组中包含的字符序列。

2.public static String copyvalueOf(char[] data , int offect , int count);

返回指定数组中表示该字符序列的 String。

  • 参数:

    data - 字符数组。

    offset - 子数组的初始偏移量。

    count - 子数组的长度。

  • 返回:

    一个 String,它包含字符数组的指定子数组的字符。

看完API文档对这两个方法的解释后,好像这两个方法的作用都是把传入的char数组的从指定位置开始,截取一定长度的子数组,变成字符串返回。

不同的地方在于对两个int类型的参数的描述不一样

仔细阅读n多遍还是没有理解,在询问同学的过程中,又查看了java11版本的API,在11的API中,我们发现,这两个方法的描述是一模一样的,API原文如下:

1.public static String valueOf(char[] data , int offect , int count);

2.public static String copyvalueOf(char[] data , int offect , int count);

红色框中,对两个方法的参数和返回值的描述,是一模一样的

而且,蓝色框中的单词Equivalent,意思就是等价于,等同于

是不是可以说,这两个方法是重复的,相同的?

于是我打开eclipse,查看这个方法内部是怎么实现的

两方法的代码如下:

方法的实现也是一样的……(无语(ˉ▽ˉ;)...)

解决

这两个方法是一样的,就是换了个名字

那么在java6版本的API文档中描述的(新问题,而且尚未解决)

String 值的初始偏移量 和 子数组的初始偏移量 各自的含义是什么?

吐槽

为什么一个方法写两遍,换汤不换药的,还得多背一个方法,让原本就大脑可用容量不足的我雪上加霜

public static String copyValueOf(char[] data);

public static String ValueOf(char[] data);

这两个也是这个情况

关键是上课的思维导图上把这相同的方法都列出来了,那应该是有什么原因的,是什么原因呢?

好像印象中老师上课讲过这个问题,是我神游了吗,如果是,把这个问题写在这是不是把我暴露了

还有就是,这个String类的方法太多了,背的人脑壳疼 /(ㄒoㄒ)/~~

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1