Java String类源码中的private final char value[];

private final char value[]; 的
public String(String original) {
this.value = original.value;
this.hash = original.hash;
}
public String() { this.value = "".value; }
value为什么能调出来 String对象里的值啊
为什么自己写的代码不通过编译呢
public class Test1 {
private final char[] qq;

public Test1(){
    this.qq=" ".qq;

}

}
跪求大神解释一下 到底String对象是怎么传值的啊?

编译器检测到""会在常量池创建String对象,String类里没有qq这个属性。看下这个博客
http://www.cnblogs.com/fairly/p/6091456.html

首先,String类的value属性是私有的,至于为什么String类中可以调用其他String类的value方法呢?
Java的语法是允许在一个类中访问该类的实例对象的私有属性的。但是其他类就不可了。
其次,你的测试代码写错了,如果改成你的构造函数的参数也是Test1的话,就可以访问它的value属性了。

 public class Test1 {
    private final char[] qq;
    public Test1(Test1 t){
        this.qq= t.qq;
    }

}

public String() { this.value = "".value; }这句代码中的“”就是一个string变量,所以它才有string对象的value属性。

而你定义的是test的类,里面有qq这个属性,而你的" ".qq中,“”是string的变量,怎么可能有你定义的test类中的属性??