String类是不可变类,String对象声明之后,就不能修改了
public final class String
可以看到源代码String类是用final修饰的。
1.对String在内存存储方面的理解:
第一:字符串一旦创建不可变。
第二:双引号括起来的字符串存储在字符串常量池中。
第三:字符串的比较必须使用equals方法。
第四:String已经重写了toString()和equals()方法。
2.String的常用构造方法
public class StringTest {
public static void main(String[] args) {
// 直接赋值(s是引用,直接指向字符串常量池之中)
String s = "hello world";
// 创建String对象,传入形式参数
// 传入字符串
String s1 = new String("你好 java");
// 传入byte数组,offset代表起始下标,length代表长度
String s2 = new String( new byte[]{65,66,67},0,2);
// 传入char数组
String s3 = new String(new char[]{'我','是','小','猪'},2,2);
System.out.println(s+s1+s2+s3);
}
}
3.常用的方法
1. endsWith :判断字符串是否以指定的后缀结束 2. startsWith ,判断字符串是否以指定的前缀开始 3. equals ,字符串相等比较,不忽略大小写 4. equalsIgnoreCase ,字符串相等比较,忽略大小写 5. indexOf ,取得指定字符在字符串的位置 6. lastIndexOf ,返回最后一次字符串出现的位置 7. length ,取得字符串的长度 8. replaceAll ,替换字符串中指定的内容 9. split ,根据指定的表达式拆分字符串 10. substring ,截子串 11. trim , 去前尾空格 12. valueOf ,将其他类型转换成字符串


