java-String类型构造函数不解
String a = "abc";
String b = new String(a);
我们知道字符串有两种声明方式,1、字面量;2、new的方式如上。
字面量声明方式只是在常量池中声明了一个不可改变的abc字符串,等new String(a)的时候我们直接看源码:
public String(String original) {
this.value = original.value;
this.hash = original.hash;
}
我的问题是:original.value和original.hash是哪里来的?按理来说不应该只有通过new的时候对象才会初始化这些属性值吗,
声明字面量a的时候并没有new,传进去如何获取这些属性值呢?