本帖最后由 小小企鹅 于 2012-10-27 22:44 编辑
"张三"、"李四"、a、new String()四个对象
a是一个引用类型变量,
new String("张三")新建了一个对象,参数"张三"是字符串
"李四"是一个字符串,保存在常量池
a = "张三"+"李四"也是一个字符串,在常量池
String的构造函数:
public String(String original) {
int size = original.count;
char[] originalValue = original.value;
char[] v;
if (originalValue.length > size) {
int off = original.offset;
v = Arrays.copyOfRange(originalValue, off, off + size);
} else {
v = originalValue;
}
this.offset = 0;
this.count = size;
this.value = v;
}
执行 Arrays.copyOfRange(originalValue, off, off + size);将原来的字符串复制,赋值给this.value |