String 来自 java.util.lang
lang->language的简写
String类封装了一个char[]数组

char数组
创建字符串对象
char[] a={'l','o','v','e'};
String s=new String(a);
语法可简化为
String s="love";
◆字符串的常量池
第一次用到一个字符串的字面值"love"
在"字符串常量池"中新建对象
再次用到相同的字面值时
访问“常量池”中已经存在的对象
String s2=new String("love");
字面值在常量池新建一个对象
new 在堆内存再新建一个对象

常量池
◆字符串不可变
String s1="I";
String s2="love";
String s3="China";
字符串加号连接如下
String s4=s1+s2+s3;
会新建对象,一个加号新建一个对象,连接多次,效率低下
而String s4="I"+"love"+"China";
字符串字面值做连接,效率不低
编译器优化为
String s4="IloveChina";
方法:
charAt(i)获得指定位置的char字符
indexOf(子串)查找子串的起始位置
不存在,返回-1
indexOf(子串,起始位置)从指定的位置向后查找
lastIndexOf(子串)从后向前查找
substring(start,end)截取[start,end)
trim()去除两端的空白字符串
length()字符串长度,字符数量