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ㄒ)/~~