看了这个http://topic.csdn.net/u/20081222/15/e77deb11-11a2-4a31-a478-f7331270230a.html
关于String的总结 ,ZangXT有提到String的构造方法public String(String original)这个的实现我找到了源代码
private final char value[];
private final int offset;
private final int count; 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;
    }其中original.count中的count
    original.value中的value
    original.offset中的offset我都不明白是什么意思
我说一下我的理解。例:String s =("a");
 int size = original.count                  
 size = 1;
char[] originalValue = original.value;
originalValue[0]='a';这个过程是不是这样的 value[0]='a',又把这个value的数组下标为0的值赋给了定义的这个char[] originalValue
接下来进行判断size和originalValue.length相等直接执行,else语句,这是不是就是两个对象共享char数组
而IF语句的判断条件我就不懂了,这个size无论什么时候都是和originalValue.length 相等啊