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