String>
    String|StringBuffer|StringBuilder
    immutable|mutable|mutable  <-- depends on the char[] value is final or not;
    thread-safe|thread-safe|single thread
1, compile phase: 
    constance will be directly written. OuerClass.constance not refer to it during runtime.
    + =after compiled=> StringBuilder
2, Performance: 
    usually, StringBuilder>StringBuffer>+; but need  to make sure the real generated class file.
    String.intern() is better if too many duplicated string instance.
3, String <--> bytes
decode: String(byte bytes[], int offset, int length, Charset charset) 
encode: String.getBytes(Charset charset) 
4, StringTokenizer | String.split
    better performance | RegEx