String 來自 java.util.lang
lang->language的簡(jiǎn)寫
String類封裝了一個(gè)char[]數(shù)組

char數(shù)組
創(chuàng)建字符串對(duì)象
char[] a={'l','o','v','e'};
String s=new String(a);
語法可簡(jiǎn)化為
String s="love";
◆字符串的常量池
第一次用到一個(gè)字符串的字面值"love"
在"字符串常量池"中新建對(duì)象
再次用到相同的字面值時(shí)
訪問“常量池”中已經(jīng)存在的對(duì)象
String s2=new String("love");
字面值在常量池新建一個(gè)對(duì)象
new 在堆內(nèi)存再新建一個(gè)對(duì)象

常量池
◆字符串不可變
String s1="I";
String s2="love";
String s3="China";
字符串加號(hào)連接如下
String s4=s1+s2+s3;
會(huì)新建對(duì)象,一個(gè)加號(hào)新建一個(gè)對(duì)象,連接多次,效率低下
而String s4="I"+"love"+"China";
字符串字面值做連接,效率不低
編譯器優(yōu)化為
String s4="IloveChina";
方法:
charAt(i)獲得指定位置的char字符
indexOf(子串)查找子串的起始位置
不存在,返回-1
indexOf(子串,起始位置)從指定的位置向后查找
lastIndexOf(子串)從后向前查找
substring(start,end)截取[start,end)
trim()去除兩端的空白字符串
length()字符串長(zhǎng)度,字符數(shù)量