String他很特殊,Java為他單獨設計了壹些方法,妳不要和其他類混淆!(是被Java封裝好了的)
知道構造原理以後,他其實也很簡單,我先說特殊地方,就是雙引號
String s="妳好";此刻s指向的就是壹個字符串對象,是對象!與妳平時寫的new很類似,只不過他這個對象放在常量池裏面!妳想想,有沒有其他對象可以直接用雙引號來聲明對麽?這就是特殊地方!(String s="妳好" 等效 String s=new String("妳好");)
它的對象組成其實也很簡單,底層用的是數組,和字典!
比如"abc";Java會先去看看常量池有沒有abc,如果沒有,它就從字典裏面(就是字符集編碼表)去找,先找a放進數組,然後在找b放進數組,在找c,然後就組成了壹個長度為3的char類型數組了!
這個abc被封裝成壹個對象,放進了常量池裏面!
所以等妳學了容器以後,妳會發現字符串的拼接組成,非常影響效率,大都使用容器進行解決這個問題了!
另外,Java是開源的,妳如果想仔細研究,可以打開String源碼壹看究竟!