public java.lang.String intern(){
  int off=str.indexOf(this);
  if (off > -1) {
    return str.get(off);
  }
  str.add(this);
  return this;
}

public java . lang . String intern ( ) { int off = str . indexOf ( this ) ; if ( off > - 1 ) { return str . get ( off ) ; } str . add ( this ) ; return this ; }
returns a canonical representation for the string object . a pool of strings , initially empty , is maintained privately by the class string . when the intern method is invoked , if the pool already contains a string equal to this string object as determined by the equals ( object ) method , then the string from the pool is returned . otherwise , this string object is added to the pool and a reference to this string object is returned . it follows that for any two strings s and t , s . intern ( ) = = t . intern ( ) is true if and only if s . equals ( t ) is true . all literal strings and string - valued constant expressions are interned . string literals are defined in section 3 . 10 . 5 of the java language specification
