public String(char[] data,int offset,int charCount){
  if ((offset | charCount) < 0 || charCount > data.length - offset) {
    throw failedBoundsCheck(data.length,offset,charCount);
  }
  this.offset=0;
  this.value=new char[charCount];
  this.count=charCount;
  System.arraycopy(data,offset,value,0,count);
}

public String ( char [ ] data , int offset , int charCount ) { if ( ( offset | charCount ) < 0 || charCount > data . length - offset ) { throw failedBoundsCheck ( data . length , offset , charCount ) ; } this . offset = 0 ; this . value = new char [ charCount ] ; this . count = charCount ; System . arraycopy ( data , offset , value , 0 , count ) ; }
allocates a new string that contains characters from a subarray of the character array argument . the offset argument is the index of the first character of the subarray and the count argument specifies the length of the subarray . the contents of the subarray are copied ; subsequent modification of the character array does not affect the newly created string . value - array that is the source of characters . offset - the initial offset . count - the length . - if the offset and count arguments index characters outside the bounds of the value array . - if value is null .
