Java基础知识总结复盘之String类
- java.lang.String 类,不需要import
- String类型是不可变的类型,String对象是不可变的对象
常用方法
length():字符串的长度
equals():比较字符内容是否一一相等
equalsIgnoreCase():忽略大小写比较
compareTo():正数表示第一个对象大,0表示两个对象相等,负数表示第二个对象大
startsWith():比较前缀
endsWith():比较后缀
charAt():返回指定索引所对应的字符
substring():从起始索引开始,往后全部截取出来
concat():进行字符串的拼接
replace():替换字符或者字符串
replaceAll():全部替换
regex():正则表达式 replaceAll中可以出现正则 replace中不能写正则
trim():去除前后空格
split():使用指定的字符串,进行切分
toUpperCase():转换为大写
toLowerCase():转换为小写
常量池
- JVM为了优化 堆内存的使用率,在方法区划分一块空间作为运行时常量池(放字符串对象)
- 当使用双引号直接赋值时,JVM先去运行时常量池中找有没有这个字符串对象,如果没有就新建然后返回这个对象内存起始地址;如果已经存在了那么直接返回这个对象的内存地址;
- 两边都是常量(字面量)的时候拼接后的字符串会放入运行时常量池;
- 两边如果出现变量 那么拼接后的字符串放在一个缓冲区中不在运行时常量池
StringBuffer/StringBuilder
- 可变的字符串类型,在进行大量的字符串拼接的时候使用
- StringBuffer是线程安全的,性能较低;给多线程准备
- StringBuilder线程不安全,性能较高;给单线程项目准备的
StringBuilder常用方法
append():追加
insert():指定索引位置,插入内容
deleteCharAt():删除指定索引对应的字符
reverse():将字符串反转,倒置
类型转换
stringBuilder.toString();
private static void test() {
StringBuilder stringBuilder = new StringBuilder("java");
stringBuilder.append("Sun");
//StringBuilder 转换 String 类型
String s = stringBuilder.toString();
System.out.println(s);
method12(s);
}
StringBuffer常用方法
append():追加
insert():指定索引位置,插入内容
deleteCharAt():删除指定索引对应的字符
reverse():将字符串反转,倒置
indexOf():指定内容首次出现的索引位置