private static LiteralByteString concatenateBytes(ByteString left,ByteString right){
  int leftSize=left.size();
  int rightSize=right.size();
  byte[] bytes=new byte[leftSize + rightSize];
  left.copyTo(bytes,0,0,leftSize);
  right.copyTo(bytes,0,leftSize,rightSize);
  return new LiteralByteString(bytes);
}

private static LiteralByteString concatenateBytes ( ByteString left , ByteString right ) { int leftSize = left . size ( ) ; int rightSize = right . size ( ) ; byte [ ] bytes = new byte [ leftSize + rightSize ] ; left . copyTo ( bytes , 0 , 0 , leftSize ) ; right . copyTo ( bytes , 0 , leftSize , rightSize ) ; return new LiteralByteString ( bytes ) ; }
concatenates two strings by copying data values . this is called in a few cases in order to reduce the growth of the number of tree nodes .
