以下哪一项是字符串(String)的实际Java字符串构造函数定义
对于带有一个字符串参数的字符串构造函数,我可以找到以下两个定义:以下哪一项是字符串(String)的实际Java字符串构造函数定义,java,string,constructor,Java,String,Constructor,对于带有一个字符串参数的字符串构造函数,我可以找到以下两个定义: public String(String original) { int size = original.count; char[] originalValue = original.value; char[] v; if (originalValue.length > size) { // The array representing
public String(String original) {
int size = original.count;
char[] originalValue = original.value;
char[] v;
if (originalValue.length > size) {
// The array representing the String is bigger than the new
// String itself. Perhaps this constructor is being called
// in order to trim the baggage, so make a copy of the array.
int off = original.offset;
v = Arrays.copyOfRange(originalValue, off, off+size);
} else {
// The array representing the String is the same
// size as the String, so no point in making a copy.
v = originalValue;
}
this.offset = 0;
this.count = size;
this.value = v;
}
及
不确定哪一个是原始实现
我们是否有第二次实现可能失败的场景?您的SDK应该包括源代码。你可以看看那里。对于OpenJDK,您可以进行搜索。仅供参考,我检查了我的SDK的定义,它显示了第二个定义。更改是在java 1.7.0_06中引入的:您的SDK应该包括源代码。你可以看看那里。对于OpenJDK,您可以进行搜索。仅供参考,我检查了我的SDK的定义,它显示了第二个定义。更改是在java 1.7.0_06中引入的:
public String(String original) {
this.value = original.value;
this.hash = original.hash;
}