String s2 = new String("abc");
s1与s2的区别: s1在内存中有一个对象
s2在内存中有两个对象,new是一个,“abc”是一个
String s3 = "abc";
则s1 = s3,因为s1与s3是指向同一个对象"abc";
String: String a = "abc";
String b = "abc";
会先到字符池里寻找指向“abc”的引用,此时a == b的结果是true
String a = new String("abc");
String b = new String("abc");
不会涉及到字符池,此时 a == b的结果是false
String的常见的操作:
1、获取
1.1 字符串中包含的字符数,即长度
int length();
1.2 根据指定位置获取指定位置上的字符
char charAt(int index);
1.3 根据字符获取该字符在字符串中的位置
int indexOf(int ch);返回的是ch在字符串中第一次出现的位置
int indexOf(int ch, int fromIndex);从fromIndex指定的位置开始,获取ch在字符串中出现的位置
int indexOf(String str);返回的是str在字符串中第一次出现的位置
int indexOf(String str, int fromIndex);从fromIndex指定位置开始,获取str在字符串中出现的位置